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
.