$ wpdb - что он возвращает на неудачу?

Я не уверен, является ли этот вопрос специфичным для WordPress или больше связан с mySQL. Я пытаюсь выяснить, что будет возвращено, если транзакция с базой данных не удалась. В следующем сценарии я обновляю строку. Если ни одно из значений не изменено, возвращается false. Если изменения сделаны истинными, возвращается. Как узнать, не удалось ли выполнить транзакцию?

$result = $wpdb->update($this->table_name, $dbfields, $where);
if($result == false)//do fail - this is not really a fail!
if($result == true)//do success

Любые указатели оценили.

Ответ 1

Взгляните в wp-includes\wp-db.php. В комментариях заголовка функции обновления wpdb говорится:

 * @return int|false The number of rows updated, or false on error.

Итак, я подозреваю, что вы хотите найти разницу между false (логическое значение, указывающее на сбой) и 0 (целое число, указывающее, что строки не были возвращены.)

Если вы сравниваете с помощью ==, false и 0 равны. Поэтому вам нужно использовать оператор ===, чтобы проверить, имеете ли вы дело с логическим false или целым числом 0.

Итак, попробуйте следующее:

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.

Подробнее об операторе сравнения === см. руководство по PHP.