Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да стартирате многократна заявка за вмъкване в SQL с помощта на PHP наведнъж?

Това означава, че имате нужда от транзакция .

Транзакцията е набор от заявки, които или всички се изпълняват добре, или ако една се провали - всички се провалят. Това е, за да се гарантира, че няма да се окажете с глупави данни във вашите таблици.

Не

  • Не използвайте множество заявки.
  • Не използвайте mysql_* функция(и).
  • Не използвайте насипни вложки.

Хората, които ви казват да направите това, просто нямат абсолютно никаква представа какво правят, игнорирайте ги.

Направете

  • Използвайте PDO
  • Използвайте подготвени отчети
  • Подгответе изявлението(ите) ВЕДНЪЖ, използвайте ги НЯКОЛКО пъти

Примерен код - НЕ копирайте и поставяйте

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

Кодът по-горе ще запази данните в две таблици САМО ако и двете вмъквания са успешни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вмъкване и извличане на изображения в mysql чрез python

  2. Как да изградим двигател за „свързани въпроси“?

  3. Изберете менюто с опции, прочетено от базата данни и използвайте неговите стойности

  4. Създайте bash скрипт за наблюдение на заявки MySQL

  5. Заредете xml в mysql таблица с елемент