2011-10-21 25 views
1

PHP 5.3.2、Ubuntu、MySQL 5.1.41、CodeIgniter 2.0.0をシンプルなPDOドライバで使用しています。PHP PDO long SQL文が応答なし

問題は、クエリ(PHPではなく)に長い文字列(約11,12キロバイト)を送信しても、MySQLはエラーも応答も返しません。 構文エラー、警告なし、HTTPエラーなし、何もありません。 PHPは "保留中"のままです。

データ文字列が数キロバイト短い場合、クエリが実行され、データがデータベースに正しく挿入されます。

私たちは〜11kbytesより大きい場合、私たちが送信したクエリをMySQLが取得しないと考えています。

PDO::prepareまたはPDOStatement::executeのいずれかが失敗します。

クエリ:呼ば

select simpleupdatestoredprocedure(15, 'loooong string'); 

機能:$this->connがメインPDOオブジェクトであると$qPDOStatementオブジェクトです

function _execute($sql) 
{ 
    $q = $this->conn->prepare($sql); 
    $q->execute(); 

    return $q; 
} 

。 (コードのこの部分ではCodeIgniter固有のものは使用しません)

渡すことができるデータやクエリの長​​さを制限する隠し設定がありますか? 必要に応じて、この問題が発生したときの正確なバイト数を確認します。

答えて

0

例外をトラップしようとしましたか? Oracle PDOドライバでも同じ問題があり、どこかのバッファを超えていました。オラクルは実験的ですが、おそらくこれで期待しています。あなたのPHPエラーログをチェックしましたか?