Autor | Zpráva | ||
---|---|---|---|
ondrej256 Profil * |
#1 · Zasláno: 30. 4. 2015, 13:16:33
Dobrý den,
Mám výjimku: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicata du champ 'value1' pour la clef 'title' search (mám to v nějakém divném jazyce, za to se omlouvám, ale nic to na věci nemění) Potřeboval bych z té hlášky/Exceptiony dostat ty hodnoty tzn: value1, title title = název atributu value1 = hodnota atributu Nechci používat žádné ořezávání stringu, protože jak vidíte, může to být v jiných jazycích a tím pádem by ořezávání nemuselo fungovat. Je možné hodnoty získat nějak jinak? Na vstupu hodnoty nijak získat nemůžu díky za rady |
||
juriad Profil |
$err = "1062 Duplicata du champ 'value1' pour la clef 'title' search"; preg_match_all('/\'(.*?)\'/', $err, $matches); var_dump($matches[1]); |
||
Kajman Profil |
Také se hodí zkontrolovat parsování pro hlášku, když se vkládala duplicitní hodnota obsahující apostrof. A také hlášku pro porušení unikátního vícesloupcového klíče.
|
||
juriad Profil |
#4 · Zasláno: 30. 4. 2015, 14:42:28
Tak mě napadá, že přece víš, co do databáze vkládáš a stačí pak jen danou hodnotu zkusit najít v hlášce pomocí
mb_strpos($err, "'$hodnota'") a názvy sloupců znáš, takže ty pořešíš podobně.
|
||
Keeehi Profil |
#5 · Zasláno: 30. 4. 2015, 16:00:09
ondrej256:
Já jenom doufám, že to k ničemu nepoužíváš! Chybové hlášky jsou pouze pro programátora. Rozhodně by na nich neměl stavět logiku aplikace. Co když se tvůrci databáze rozhodnou, že takhle jak ta hláška je se jim nelíbí a rozhodnou se ji nějak upravit? |
||
ondrej256 Profil * |
#6 · Zasláno: 30. 4. 2015, 17:04:05
Chtěl jsem na tom postavit logiku, ale rozhodně ne takto. Když jsem psal, že nechci používat žádné ořezávání stringů, tak jsem tím myslel i podobné věci jako se tu zmínily.
Doufal jsem, že se hodnota dá nějak získat |
||
Časová prodleva: 10 let
|
0