Ich bin mir nicht sicher, ob diese Frage WordPress-spezifisch ist oder eher mit mySQL zusammenhängt. Ich versuche herauszufinden, was zurückgegeben würde, wenn die Transaktion mit der Datenbank fehlschlägt. Im folgenden Szenario aktualisiere ich eine Zeile. Wenn keiner der Werte geändert wird, wird false zurückgegeben. Wenn Änderungen vorgenommen werden, wird true zurückgegeben. Wie kann ich feststellen, ob die Transaktion fehlgeschlagen ist?
$result = $wpdb->update($this->table_name, $dbfields, $where);
if($result == false)//do fail - this is not really a fail!
if($result == true)//do success
Alle Hinweise geschätzt.
Schauen Sie rein wp-includes\wp-db.php
. Die Header-Kommentare der Update-Funktion von wpdb sagen:
* @return int|false The number of rows updated, or false on error.
Ich würde also vermuten, dass Sie den Unterschied zwischen finden möchten false
(ein boolescher Wert, der einen Fehler anzeigt) und 0
(Eine Ganzzahl, die angibt, dass keine Zeilen zurückgegeben wurden.)
Wenn Sie mit vergleichen ==
, false
und 0
sind gleich. Sie müssen daher die verwenden ===
-Operator, um zu prüfen, ob Sie es mit dem booleschen Wert zu tun haben false
oder die Ganzzahl 0
.
Versuchen Sie also Folgendes:
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.
Sehen das PHP-Handbuch für weitere Informationen zum Vergleichsoperator ===.