简体   繁体   中英

What does a successful MySQL DELETE return? How to check if DELETE was successful?

Using PHP, I am trying to delete a record, but I want to check if it was successful or not. Is anything returned from a successful DELETE FROM foo where bar = 'stuff' ?

Alternatively, do you know any other ways to check if a DELETE was successful? Or am I better off just making sure the row exists before I delete it? I am trying to avoid another query if possible.

Assuming you are using mysql_query :

For other type of SQL statements, INSERT, UPDATE, DELETE , DROP, etc, mysql_query() returns TRUE on success or FALSE on error.

If you are using PDO::exec , then the manual says this:

PDO::exec() returns the number of rows that were modified or deleted by the SQL statement you issued. If no rows were affected, PDO::exec() returns 0.

Don't want to answer snipe, but since this was selected as the answer, I should note that mysql_query will return TRUE even if the query did not actually remove anything. You should use mysql_affected_rows to check for that.

Additionally, if you care about the number of rows that were affected:

[Use] mysql_affected_rows() to find out how many rows were affected by a DELETE, INSERT, REPLACE, or UPDATE statement.

you could try this for your php code, placed after your query runs:

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>";
}

对于其他类型的SQL语句, INSERTUPDATEDELETEDROP等, mysql_query()成功时返回TRUE ,错误时返回FALSE

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM