Edit report at https://bugs.php.net/bug.php?id=62348&edit=1
ID: 62348 Updated by: php-bugs@lists.php.net Reported by: valentiny510 at yahoo dot es Summary: mysqli query does not return false on DELETE -Status: Feedback +Status: No Feedback Type: Bug Package: MySQLi related Operating System: XP PHP Version: 5.4.4 New Comment: No feedback was provided. The bug is being suspended because we assume that you are no longer experiencing the problem. If this is not the case and you are able to provide the information that was requested earlier, please do so and change the status of the bug back to "Open". Thank you. Previous Comments: ------------------------------------------------------------------------ [2012-06-18 22:57:59] johan...@php.net Please try using this snapshot: http://snaps.php.net/php5.4-latest.tar.gz For Windows: http://windows.php.net/snapshots/ The query is successfull, een if no data is deleted/changed. ------------------------------------------------------------------------ [2012-06-18 07:13:30] adamjonr at gmail dot com The mysqli query returns false for failed queries and true for successful queries that don't involve SELECT, SHOW, DESCRIBE or EXPLAIN (i.e., DELETE queries return true when "successful".) DELETE queries can impact 0, 1, or multiple rows, and their completion without error is, at least in the terms of the mysqli library, considered a success. http://www.php.net/manual/en/mysqli.query.php If you want to alter the flow of your script depending on whether a row has been deleted, you can use $mysqli->affected_rows to retrieve the number of rows impacted by the last DELETE, INSERT, or UPDATE statement: http://php.net/manual/en/mysqli.affected-rows.php ------------------------------------------------------------------------ [2012-06-18 00:14:46] valentiny510 at yahoo dot es Description: ------------ Honestly, i'm not realy sure if is php or mysql thing.. Look at the test script NOTE: id 2 DOES NOT exists and MYSQL_REPORT_ALL does nor report anything :S Test script: --------------- mysqli_report( MYSQLI_REPORT_ALL ); $db = new mysqli('.', 'root', 'pass', 'database'); if (!$db->query('DELETE FROM sessions WHERE id = 2')) echo 'Cannot delete session: ', $db->error; else echo 'DELETED'; Expected result: ---------------- Cannot delete session: "some error from mysqli" Actual result: -------------- DELETED ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=62348&edit=1