當我使用MySQLi對我的php應用程序執行sql查詢時,錯誤總是爲空或爲空,因此禁止我從日誌記錄或打印它們,這是相當令人沮喪的...我沒有遇到任何插入,更新或者在查詢不會引發錯誤時使用下面的代碼段刪除數據。MySQLi獲取查詢錯誤
我使用PHP 5.3.9在Zend服務器社區版5.6.0和mysqli的mysqlnd 5.0.8-dev的 - 20102224 - $修訂:318113 $
這是執行我的查詢代碼:
...
$this->last= $this->mysqli->query($sql);
if (!$this->last)
{
print_r($this->mysqli);
var_dump($this->mysqli->error);
var_dump($this->mysqli->errno);
var_dump($this->mysqli);
$msg = 'Query failed [ ' . $this->mysqli->error . ' ]';
$this->mysqli->rollback();
throw new Exception($msg, ...);
}
...
出於測試目的,我insterted一個在我的數據庫名爲「鮑勃」的城市,並試圖插入另一個城市具有相同的名稱,這是印什麼:
mysqli Object
(
...
[errno] => 1062
[error] => Duplicate entry 'bob' for key 'unq_city'
...
)
string(0) ""
int(0)
object(mysqli)#6 (18) {
...
["errno"]=>
int(0)
["error"]=>
string(0) ""
...
}
^h如前所述,使用var_dump或訪問我的mysqli對象的errno或錯誤是null。但是print_r顯示了預期的錯誤!我在這裏做錯了什麼?我之前從未使用mysqli,並且正在從oci8遷移,所以我希望這只是一個愚蠢的錯誤。
編輯:
我測試的舊服務器,PHP 5.3.8,5.5.0 ZSCE我的應用程序和mysqlnd 5.0.8-dev的 - 20102224 - $修訂:310735 $具有相同從我可以告訴的配置。所有轉儲和打印都顯示了整個mysqli數據,沒有任何空白字段!
,我認爲是你必須報告一個bug,祝你好運! – ZiTAL 2012-03-17 17:20:52