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.
The standard DELETE statement in SQL returns the number of deleted rows. In PostgreSQL you can make DELETE statement return something else. You can return all rows that have been deleted. You can return the columns of your choice.
You can use ROW_COUNT() function to check the number of deleted rows. The conditions in the WHERE clause (optional) identify which rows to delete. Without WHERE clause, all rows are deleted. If you specify the ORDER BY clause, the rows are deleted in specified order.
The MySQL DELETE Statement The DELETE statement is used to delete existing records in a table.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With