1

mysqli 拡張機能と準備済みステートメントを使用して、MySQL テーブルにデータを挿入するための PHP コードをいくつか作成しました。MySQL サーバーはバージョン 5.0.77 を実行しています。

バージョン 5.5.27 を実行しているマシンでコードをローカルでテストしたところ、問題なく動作しました。古いバージョンの MySQL を使用してサーバーにコードを転送すると、「mysql_stmt_execute に渡された不明なプリペアド ステートメント ハンドラ (0) が毎回」というエラーが表示されます。

私はこのエラーを何度もグーグルで検索しましたが、バージョン 5.0.77 より前にすべて修正されたように見えるバグ レポートしか見つかりませんでした。もう 1 つの奇妙な点は、レポートでエラー メッセージの変更に番号が記載されていることがありますが、私の場合は、同時に接続を開いている異なるブラウザーの数に関係なく、番号は 0 のままです。

サーバーは私の管理下になく、他の多くのユーザーにもサービスを提供しているため、サーバーをアップグレードできません。

何が起こっているのか、またはそれを修正する方法を知っている人はいますか? どうもありがとうございました。

編集

PHP コードはhttp://pastebin.com/1X4f5G5Zに貼り付けられています。関数の機能を理解するのに役立つコメントをいくつか追加しました。

http://www.php.net/manual/en/mysqli-stmt.bind-param.php#110363で提供されているように、mysqli エクステンションでラッパー クラスを使用しています。

4

1 に答える 1

1

私は成功せずに多くのことを試みました。これは、MySQL v5.0.77 のバグである可能性があります。

コメントで@robert-rozasによる回避策に頼り、コードをmysqli拡張機能に移行することで、ようやくコードが機能するようになりました。今ではうまく機能しています! 質問を解決するためにここに再投稿します。

于 2013-11-17T17:28:03.090 に答える