Что возвращает успешный MySQL DELETE? Как проверить успешность DELETE?

Используя PHP, я пытаюсь удалить запись, но я хочу проверить, было ли это успешным или нет. Верно ли что-нибудь из успешного DELETE FROM foo where bar = 'stuff' ?

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

Предполагая, что вы используете mysql_query :

Для других типов операторов SQL INSERT, UPDATE, DELETE , DROP и т. Д. Mysql_query () возвращает TRUE при успешном завершении или FALSE при ошибке.

Если вы используете PDO :: exec , тогда в руководстве сказано следующее:

PDO :: exec () возвращает количество строк, которые были изменены или удалены выданной вами операцией SQL. Если никакие строки не были затронуты, PDO :: exec () возвращает 0.

Не хочу отвечать на snipe, но поскольку это было выбрано в качестве ответа, я должен отметить, что mysql_query вернет TRUE даже если запрос фактически ничего не удалит. Вы должны использовать mysql_affected_rows для проверки этого.

Кроме того, если вас беспокоит количество строк, которые были затронуты:

Использовать mysql_affected_rows (), чтобы узнать, сколько строк было затронуто операцией DELETE, INSERT, REPLACE или UPDATE.

вы можете попробовать это для своего PHP-кода, размещенного после запуска вашего запроса:

 if (mysql_affected_rows() > 0) { echo "You have successfully updated your data.<br><br>"; } else { echo "The data you submitted matched the current data so nothing was changed.<br><br>"; }