【PHP】下らねぇ質問はID出して書き込みやがれ 109
■ このスレッドは過去ログ倉庫に格納されています
0280269
2011/08/06(土) 21:29:46.39ID:???確かに PDOStatement を foreach でイテレートした時だけロックが開放されてないな
https://bugs.php.net/report.php から報告した方がいい
$con = new PDO('sqlite:test.db');
if (!$con->query("SELECT 1 FROM sqlite_master WHERE type='table' AND name='t'")->fetch()) {
$con->query('CREATE TABLE t (c INT)');
}
$con->query('INSERT INTO t VALUES (1)');
foreach ($con->query('SELECT * FROM t LIMIT 1') as $row) {
trigger_error('abort', E_USER_ERROR); # test.db not unlocking
}
バフフィックスされるまでの回避策は
foreach($result as $row) {
を止めて
foreach ($result->fetchAll() as $row) {
または
while ($row = $result->fetch()) {
スタイルを利用するぐらいか
■ このスレッドは過去ログ倉庫に格納されています