Unique id i błędy PHP

0

Hm. Jeśli chcę wstawić do bazy danych rekord z wartością pola klucza unique, która już istnieje, następuje błąd sql, to wie każdy. Lecz teraz - jak catch'nąć (wyłapać no xD) ten błąd, i poinformować o tym użytkownika? Obecnie moja linia wygląda tak:

$this->result = mysql_query($query,$this->link) or die (echo "Błąd SQL!");

Die'ować musi w innych przypadkach, a w tym powinien kulturalnie zwrócić taką, a nie inną wartość ;).

Więc ostateczne pytanie - jak dobrze handle'ować uniqueid z php?

0

rtfm! http://pl2.php.net/manual/en/function.mysql-error.php

cos w stylu:

$res = @mysql_query($query);

if (!$res)
{
    //albo mysql_errno() jak znasz numer błedu 
    *http:*dev.mysql.com/doc/refman/5.0/en/error-handling.html
    if (mysql_error == "treść komunikatu")
    {
        echo ("Pole o tym id juz istnieje");
    }
}
else
{
    //operacje na wynikach 
}
0

Skąd miałem wiedzieć, żeby rtfmować kody błędów, jeśli chciałem właśnie je obejść? ^^
No, teraz już widzę, że raczej inaczej się nie da... w każdym razie dzięki, tutaj ten błąd na przyszłość:

Error: 1062 SQLSTATE: 23000 (ER_DUP_ENTRY) 

Message: Duplicate entry '%s' for key %d 

Wg. mnie powinno wypierdalać:

Error: 1169 SQLSTATE: 23000 (ER_DUP_UNIQUE) 

Message: Can't write, because of unique constraint, to table '%s' 

'

Ale skoro wywala pierwszy...

0

lepiej operuj na error_no()

Zooby napisał(a)

Skąd miałem wiedzieć, żeby rtfmować kody błędów, jeśli chciałem właśnie je obejść?

[rotfl] :-D

1 użytkowników online, w tym zalogowanych: 0, gości: 1