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オブジェクトであると$q
がPDOStatement
オブジェクトです
function _execute($sql)
{
$q = $this->conn->prepare($sql);
$q->execute();
return $q;
}
。 (コードのこの部分ではCodeIgniter固有のものは使用しません)
渡すことができるデータやクエリの長さを制限する隠し設定がありますか? 必要に応じて、この問題が発生したときの正確なバイト数を確認します。