1MB以上のblob型にbindColumnしても1MBで切れる
MYSQL_ATTR_MAX_BUFFER_SIZEがデフォルトでは1MBになっているらしいのでインスタンス生成時に指定しておく。
$db = new PDO("mysql:host=$dbhost; dbname=$dbname", DBUSER, DBPASSWD, array(PDO::MYSQL_ATTR_MAX_BUFFER_SIZE=>1024*1024*10));
クエリログをみてもプリぺーアドステートメントが実行されてないぞ?
デフォルトだとPHP側でプリペアードステートメントをエミュレートしている。
サーバーサイドプリペアードステートメントを使うには、
$dbh = new PDO('mysql:host=localhost;dbname=sandbox;charset=cp932', 'sandbox', 'sandbox', array(
PDO::ATTR_EMULATE_PREPARES => false,
));
エラーが起きても例外を投げてくれないぞ?
デフォルトだと投げない設定になっている模様。
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
持続的接続ってなんぞや?
最終更新:2011年01月18日 01:35