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

Използване на PHP за изпълнение на множество MYSQL заявки

Не изпълнявайте куп заявки наведнъж. Обикновено успехът на една от тях зависи от правилното изпълнение на всички други операции, така че не можете просто да стреляте с булдозер, сякаш нищо не се е объркало, когато има проблем.

Можете да го направите по следния начин:

$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 инжектиране и една от тях е достатъчна, за да направи цялото ви приложение уязвимо.

Струва си да се отбележи, че PDO е много по-гъвкав и адаптивен от mysqli така че ако не сте инвестирали твърде много в mysqli , струва си да помислите за превключвател.



  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?

  2. Как трябва да се справя с --secure-file-priv в MySQL?

  3. странно кодиране на символи на съхранените данни, старият скрипт им показва добре, новият не го прави

  4. Кога да използвате SELECT ... ЗА АКТУАЛИЗИРАНЕ?

  5. Най-добрият начин да тествате дали в MySQL таблица съществува ред