sql >> Database teknologi >  >> RDS >> Mysql

Brug af PHP til at udføre flere MYSQL-forespørgsler

Kør ikke en masse forespørgsler på én gang. Normalt afhænger succesen af ​​én af, at alle de andre operationer er blevet udført korrekt, så du kan ikke bare bulldozere med, som om intet er gået galt, når der er et problem.

Du kan gøre det sådan her:

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

Glem ikke at aktivere undtagelser så eventuelle forespørgselsfejl stopper din proces i stedet for at tingene løber ud af kontrol.

Grunden til at du ikke brug multi_query er fordi den funktion ikke understøtter pladsholderværdier. Hvis du har brug for at introducere brugerdata af en eller anden art i denne forespørgsel, skal du bruge bind_param for at gøre det sikkert. Uden pladsholderværdier er du udsat for SQL-injektionsfejl, og en enkelt af dem er nok til at gøre hele din applikation sårbar.

Det er værd at bemærke, at PDO er meget mere fleksibel og tilpasningsdygtig end mysqli så hvis du ikke er for meget investeret i mysqli , er det værd at overveje et skifte.



  1. Sådan installeres pgAdmin 4 på Ubuntu 20.04/18.04/16.04

  2. Hvordan opretter og forespørger jeg linkede databaseservere i SQL Server?

  3. SQL vælg max(dato) og tilsvarende værdi

  4. Er der en enkel måde at konvertere MySQL-data til Title Case?