Portál AbcLinuxu, 12. května 2025 08:11

Dotaz: Zjištění duplicity v mysql

19.5.2014 22:49 Jan
Zjištění duplicity v mysql
Přečteno: 357×
Odpovědět | Admin
Zdravím, poradil by mi prosím někdo, jak ošetřit sloupec "b", který má nastaven v mysql unikátní klíč ? Jak se to dělá, jde to nějak jednoduše ? Děkuji.
$stmt = $pdo->prepare('INSERT INTO table (a, b, c, d) VALUES (?, ?, ?, ?);');
$stmt->execute(array($a, $b, $c, $d));

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

19.5.2014 23:10 DarkKnight | skóre: 26
Rozbalit Rozbalit vše Re: Zjištění duplicity v mysql
Odpovědět | | Sbalit | Link | Blokovat | Admin
a dotaz? jak zjistit, zda dany insert nevrati vyjimku? blok try/catch... jak to zjistit na databazove strane? select
19.5.2014 23:15 Jan
Rozbalit Rozbalit vše Re: Zjištění duplicity v mysql
Odpovědět | | Sbalit | Link | Blokovat | Admin
raděki bych to na straně php, abych nemusel posílát další dotaz do mysql. děkuji
20.5.2014 00:28 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Zjištění duplicity v mysql
Jak by php mohlo vědět, zda se již taková hodnota v DB tabulce nevyskytuje? Samozřejmě nepředpokládám, že by ji mělo celou nakešovanou. Prostě se musí zeptat. Nebo použij místo insertu replace, pokud to logika aplikace dovoluje.
20.5.2014 08:22 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Zjištění duplicity v mysql
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co znamená ošetřit? Co chceš aby se stalo a při čem?
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
20.5.2014 08:27 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: Zjištění duplicity v mysql
Odpovědět | | Sbalit | Link | Blokovat | Admin
$stmt = $pdo->prepare('INSERT INTO table (a, b, c, d) VALUES (?, ?, ?, ?);');
try {
   $stmt->execute(array($a, $b, $c, $d));
} catch (PDOException $e) {
   if ($e->errorInfo[1] == 1062) {
//      Chyba: duplicate entry
   } else {
//      Nějaká jiná chyba
   }
}
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
20.5.2014 14:19 Sten
Rozbalit Rozbalit vše Re: Zjištění duplicity v mysql
Doporučuju vyhnout se errorInfo[1], které je MySQL-specific, a používat standardizované SQLSTATE:
if ($e->getCode() == "23000")
.
27.5.2014 22:24 Jan
Rozbalit Rozbalit vše Re: Zjištění duplicity v mysql
Ahoj, a díky. Aby tohle fungovalo, je potřeba něco nastavit? Nějaký atribut nebo tak něco? Mě to žádnou chybu nevypíše:-( Děkuji
28.5.2014 07:49 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Zjištění duplicity v mysql
A máš tam try ... catch blok? ;)
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
28.5.2014 08:57 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: Zjištění duplicity v mysql
Případně, máš opravdu na úrovni mysql nastaven požadovaný unikátní klíč?
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.