Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak uruchomić wiele zapytań wstawiania w SQL przy użyciu PHP za jednym razem?

Oznacza to, że potrzebujesz transakcji .

Transakcja to zestaw zapytań, które albo wszystkie wykonują dobrze, albo jeśli jedno się nie powiedzie - wszystkie kończą się niepowodzeniem. Ma to na celu zapewnienie, że nie skończysz z bzdurnymi danymi w swoich tabelach.

Nie

  • Nie używaj wielu zapytań.
  • Nie używaj mysql_* funkcja(e).
  • Nie używaj wstawek zbiorczych.

Ludzie, którzy ci to mówią, po prostu nie mają pojęcia, co robią, zignoruj ​​ich.

Tak

Przykładowy kod - NIE kopiuj wklej

$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();

Powyższy kod zapisze dane w dwóch tabelach TYLKO, jeśli oba wstawienia powiodą się.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sprawdź, czy instrukcja sql zaczyna się od słowa SELECT

  2. Jak załadować plik sql.gz do mojej bazy danych? (Importowanie)

  3. Jak zachowuje się operator minus między dwiema datami i godzinami w MySQL?

  4. Łączenie się ze zdalnym my Sql pokazuje mi odmowę dostępu dla użytkownika [zabezpieczony e-mail] ( przy użyciu hasła :tak )

  5. Wersjonowanie wierszy w MySQL