Используете ли вы mysql_error ($ con) или mysql_insert_id ($ con) для проверки результата вставки? - PullRequest
1 голос
/ 26 января 2010
$dml = "insert into table ...";
mysql_query($dml,$con);

Вышеуказанное вставляет что-то в таблицу. Затем вы можете проверить, удалось ли это либо с помощью

if('' == mysql_error($con))...

или

if($id = mysql_insert_id($con))...

Какой у тебя выбор и причина?

Кстати, будет ли нижеприведенный $ id извлечен при запуске их обоих, я еще не пробовал:

$err = mysql_error($con);
$id = mysql_insert_id($con);

Ответы [ 2 ]

1 голос
/ 26 января 2010

Я использую mysql_error. Я делаю так, потому что это больше соответствует проверке ошибок в других частях программы, и я буду знать, почему ошибка возникла, а не просто получила ложное значение.

0 голосов
/ 26 января 2010

mysql_error() всегда выдаст ошибку, если операция вставки завершится неудачно, поэтому выборка insert_id на самом деле не нужна, насколько я вижу, если только она не нужна для дальнейшей обработки.

Ваш блок кода должен работать, однако руководство рекомендует запускать insert_id () сразу после выдачи запроса.

Примечание. Поскольку mysql_insert_id () действует для последнего выполненного запроса, обязательно вызовите mysql_insert_id () сразу после запроса, генерирующего значение.

...