sql >> データベース >  >> RDS >> Mysql

PHPを使用して複数のMYSQLクエリを実行する

    一度に大量のクエリを実行しないでください。通常、1つの成功は、他のすべての操作が正しく実行されているかどうかに依存するため、問題が発生したときに何も問題がないかのようにブルドーザーを操作することはできません。

    あなたはこのようにそれを行うことができます:

    $queries = [
      "CREATE TEMPORARY TABLE tmp SELECT * FROM event_categoriesBU WHERE id = 1",
      "UPDATE tmp SET id=100 WHERE id = 1",
      "INSERT INTO event_categoriesBU SELECT * FROM tmp WHERE id = 100"
    ];
    
    foreach ($query as $query) {
      $stmt = $conn->prepare($query);
      $stmt->execute();
    }
    

    例外を有効にする ことを忘れないでください クエリが失敗すると、制御不能になるのではなく、プロセスが停止します。

    しない理由 multi_queryを使用する その関数はプレースホルダー値をサポートしていないためです。このクエリで何らかのユーザーデータを導入する必要がある場合は、bind_paramを使用する必要があります 安全に行うために。プレースホルダー値がないと、SQLインジェクションのバグにさらされ、アプリケーション全体を脆弱にするのに1つで十分です。

    PDOは、mysqliよりもはるかに柔軟で適応性があることに注意してください。 したがって、mysqliにあまり投資していない場合 、スイッチを検討する価値があります。



    1. JOINのON句で参照されるテーブルの順序は重要ですか?

    2. OracleデータベースでPL/SQLブロック・メンバーとしてVARRAYを作成する方法

    3. デフォルト以外のNLS_NUMERIC_CHARACTERSを使用してOraclePL/ SQLでテキストを数値に効率的に変換するにはどうすればよいですか?

    4. SQL Serverのチューニング–すべては測定に関するものです