Используете ли вы mysql_error($con) или mysql_insert_id($con) для проверки результата вставки?

$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 ответа

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

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

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

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

Другие вопросы по тегам