テーブルロックの下で準備済みステートメントを実行できないことがわかりました。コマンドが解放を待っているかのようにページがロックされ、ロックを手動で強制終了する必要があります。
これはほんの一例です:
mysql_query("LOCK TABLE TBL WRITE");
$stmt = $mysqli->prepare("INSERT INTO TBL (ID) VALUES (?)");
$stmt->bind_param("i", $nextID);
$stmt->execute();
mysql_query("UNLOCK TABLES");
これが当てはまる理由はありますか?準備されたステートメントを導入する前は、ロックなしでの実行と同様に正常に機能していました。
これは学習目的のためだけなので、ロックと自動インクリメント ID が必要な理由についてはコメントしないでください :)
ありがとうございました。