innoDB でシーケンス置換を作成しようとしています (auto_increment の動作が myisam とは異なるため)。だから私はseqという名前のストアド関数を作成しました。次のように使用できます。
INSERT INTO a_table(id) VALUES(seq('seq_a_table'));
私の mysqli ベースのデータベース ライブラリは自動的にプリペアド ステートメントを使用するため、次のエラーが発生します。
This command is not supported in the prepared statement protocol yet
MySQL バージョン: 5.1.48 (OSX Snow Leopard)。
アップデート
うわー、私はばかげているように感じます...私はエラーに非常に混乱していたので、問題のステートメントによってスローされなかったという単純な事実を見逃しました。私はトランザクションを使用していましたが、クエリ関数が「START TRANSACTION」を含むすべてをステートメントとして自動的にコンパイルすることを忘れていました。したがって、将来の深夜のコーダーのために-ステートメントでトランザクションを開始しようとしないでください:)