以下のコード スニペットに示すように、PHP を使用して連続した MYSQL ステートメントを実行しようとしています (行を別の行にコピーし、tmp テーブルを介して ID の名前を変更するだけです)。
重複した構文エラー メッセージが表示されます。数え切れないほどの繰り返しを試してきました。このコードは、私が PHP マニュアルや SO に関する他の mysql の質問で調べたコードと似ています (php ディメンションを除く)。
私の php 構文が間違っている理由を説明できる人はいますか?
リーリーPHP メッセージの戻り値:
テーブル作成エラー: SQL 構文にエラーがあります。MariaDB サーバーのバージョンのマニュアルで「UPDATE tmp SET id=100 WHERE id = 1INSERT INTOevent_categoriesBU SELECT * FROM t at line 1」を確認してください。近くで使用する正しい構文「
一度に大量のクエリを実行しないでください。多くの場合、これらの操作の 1 つが成功するかどうかは、他のすべての操作が正しく実行されるかどうかに依存します。そのため、何か問題が発生した場合、何も問題がなかったかのようにそのまま続行することはできません。
###あなたはこれを行うことができます:### リーリー例外を有効にすることを忘れないでください
そうすれば、クエリの失敗によって事態が制御不能になるのではなく、プロセスが停止します。あなたが multi_query
を使用しない理由は、この関数がプレースホルダー値をサポートしていないためです。このクエリに何らかのユーザー データを取り込む必要がある場合は、安全に行うためにbind_param を使用する必要があります。プレースホルダー値がないと SQL インジェクション エラーにさらされ、その 1 つでアプリケーション全体が脆弱になる可能性があります。
にあまり投資していない場合は、切り替えを検討する価値があります。PDO は
mysqliよりも柔軟性と適応性が高いことに注意してください。そのため、
mysqli