$wpdb - what does it return on fail?
I'm n开发者_开发知识库ot sure whether this question is WordPress specific or is more related to mySQL. I am trying to find out what would be returned if the transaction with the database fails. In the following scenario, I am updating a row. If none of the values are changed false is returned. If changes are made true is returned. How can I tell if the transaction has failed?
$result = $wpdb->update($this->table_name, $dbfields, $where);
if($result == false)//do fail - this is not really a fail!
if($result == true)//do success
Any pointers appreciated.
Take a look in wp-includes\wp-db.php
. The header comments of wpdb's update function says:
* @return int|false The number of rows updated, or false on error.
So, I'd suspect that you want to find the difference between false
(a boolean value indicating a failure) and 0
(an integer indicating that no rows were returned.)
If you compare using ==
, false
and 0
are equal. You therefore need to use the ===
operator to check whether you're dealing with the boolean false
or the integer 0
.
So, try these:
if ($result === false) // Fail -- the "===" operator compares type as well as value
if ($result === 0) // Success, but no rows were updated
if ($result > 0) // Success, and updates were done. $result is the number of affected rows.
See the PHP manual for more information on the === comparison operator.
精彩评论