2012-03-17 6 views
4

MySQLiを使用してphp applciationでsqlクエリを実行すると、エラーが常に空またはnullになるため、ログや印刷を無効にしてしまい、かなりイライラしてしまいます...クエリがエラーを起こすことが予想されない場合は、以下のスニペットでデータを削除してください。MySQLiクエリのエラーが発生する

私は、Zend Serverのコミュニティ版でPHP 5.3.9を使用しています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から移行していますので、愚かな間違いだと思っています。


編集:私は5.0.8-devの古いサーバー、PHP 5.3.8、5.5.0 ZSCEに私のアプリをテストし、mysqlnd

- $リビジョン - 20102224:$同じで310735を私が理解できるものから構成することができます。すべてのダンプとプリントは、空のフィールドなしでmysqliデータ全体を表示しました!

+1

私はあなたがそれを報告しなければならないバグ、幸運だと思います! – ZiTAL

答えて

0

あなたがこのの出力を置くことができる?:

$tmp = array(); 
foreach($this->mysqli as $key => $value) 
    $tmp[$key] = $value; 
print_r($tmp); 
+2

印刷されたmysqliオブジェクトは完全に空ですが、古いサーバでは正しく動作するので、ZSCEまたはPHPのいずれかでバグが疑われ始めています。 – gxtaillon

関連する問題