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

PHPを使用してSQLで複数の挿入クエリを一度に実行するにはどうすればよいですか?

    これは、トランザクション> 。

    トランザクションは、すべてが正常に実行されるか、1つが失敗した場合、すべてが失敗するクエリのセットです。これは、テーブルにデータががらくたにならないようにするためです。

    しないでください

    • マルチクエリを使用しないでください。
    • mysql_*は使用しないでください 関数。
    • バルクインサートは使用しないでください。

    それをするようにあなたに言う人々は、彼らが何をしているのか全く手がかりがないので、彼らを無視してください。

    する

    サンプルコード-コピーして貼り付けないでください

    $dsn = 'mysql:dbname=testdb;host=127.0.0.1;charset=utf8mb4';
    $user = 'dbuser';
    $password = 'dbpass';
    
    $pdo = new PDO($dsn, $user, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    $insert['first'] = $pdo->prepare("INSERT INTO table SET col1 = :val, col2 = :val2");
    $insert['second'] = $pdo->prepare("INSERT INTO another_table SET col1 = :val, col2 = :val2"); 
    
    $pdo->beginTransaction();
    
    $insert['first']->bindValue(':val', 'your value');
    $insert['first']->bindValue(':val2', 'anothervalue');
    $insert['first']->execute();
    
    $insert['second']->bindValue(':val', 'your value');
    $insert['second']->bindValue(':val2', 'anothervalue');
    $insert['second']->execute();
    
    $pdo->commit();
    

    上記のコードは、両方の挿入が成功した場合にのみ、データを2つのテーブルに保存します。



    1. fullCalendarイベントはMySQLにメソッドを投稿します

    2. TO_SECONDS()がMariaDBでどのように機能するか

    3. 高可用性のためのMySQLのハイブリッドクラウドレプリケーション

    4. mysql-タイムスタンプを時間単位で検索