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

Wstaw zbiorczy MySQL przez PHP

Jeśli korzystasz z przygotowanego zestawienia, możesz zapętlić swoje $JSON_data tablicę z pętlą foreach i uruchom INSERT z tym fragmentem danych.

Korzystanie z przygotowanych instrukcji zmniejszy obciążenie związane z budowaniem zapytania, po prostu wysyłając nowe dane do bazy danych w każdej iteracji pętli.

$query = mysqli_prepare("INSERT INTO `MyTable` (`col1`,`col2`,`col3`)
    VALUES(?,?,?)");

foreach($JSON_data as $key => $value) {
    $query->bind_param('sss',$value["prop1"],$value["prop2"],$value["prop3"];
    $query->execute();
}

Zauważ, że pierwszy argument bind_param() mówi mu, ile wartości będziesz wiązać, a także typ dla każdej wartości.
s odpowiada danym ciągu, i odpowiada danym całkowitym, d odpowiada podwójnej (zmiennoprzecinkowej), a b odpowiada danym binarnym.

Jeszcze jedno słowo ostrzeżenia, NIE cytuj dowolne dane ciągu, jako s datatype mówi mysql, aby oczekiwał ciągu. Jeśli cytujesz ? w przygotowanym oświadczeniu powie Ci, że liczba parametrów jest nieprawidłowa. Jeśli zacytujesz ciągi, zostaną one zacytowane w mysql.

EDYTUJ:

Jeśli chcesz użyć tego samego paradygmatu (wstawianie wielu wierszy za pomocą jednego zapytania), możesz to zrobić. Jednym ze sposobów jest utworzenie klasy, która będzie agregować bind_param wywołuje i wykonuje jeden parametr bind_param podczas wykonywania zapytania. Kod do tego jest tutaj .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak połączyć dwie tabele za pomocą listy oddzielonej przecinkami w polu łączenia?

  2. MySql PHP wybierz liczbę odrębnych wartości z danych oddzielonych przecinkami (tagi)

  3. WYBIERZ Dane z wielu tabel?

  4. MYSQL otrzymuje wszystkie wyniki, ale najpierw

  5. Jak zaimportować zrzut MySQL z wiersza poleceń Z nadpisaniem?