Zastanawiam się, czy możliwe jest użycie wielu zapytań w ten sposób? to sprawi, że moja praca będzie łatwa lub jakikolwiek inny sposób to zrobić? właśnie przeniosłem się do mysqli prepared statement
więc nie mam pojęcia. dzięki Ci
$mysqli = new mysqli("localhost", "root", "", "demo");
$stmt = $mysqli -> prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
$stmt = $stmt->get_result();
while ($row = $stmt->fetch_assoc()) {
//do something with row
}
$stmt->bind_param("i", $id2);
$stmt->execute();
$stmt = $stmt->get_result();
while ($row = $stmt->fetch_assoc()) {
//do something with row
}
Odpowiedzi:
0 dla odpowiedzi № 1$stmt = $stmt->get_result()
zwraca mysqli_result i nie jest już przygotowywanym stwierdzeniem, a zatem nie można wykonywać wielu zapytań.
-3 dla odpowiedzi № 2
Nie możesz użyć "wielu zapytań" z przygotowanymisprawozdania. Możesz jednak wykonać to samo zapytanie z innym zestawem parametrów - to jest dokładnie to, do czego przygotowane są instrukcje. Sądząc po kodzie, potrzebujesz drugiej opcji (więc poprawiłem tytuł pytania). podać inną wartość dla już powiązanej zmiennej.
proszę bardzo:
$mysqli = new mysqli("localhost", "root", "", "demo");
$stmt = $mysqli -> prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
$res = $stmt->get_result();
while ($row = $res->fetch_assoc()) {
//do something with row
}
$id = $id2; // you need to use the same variable you bound
$stmt->execute();
$res = $stmt->get_result();
while ($row = $res->fetch_assoc()) {
//do something with row
}
no i tak, w twoim kodzie było też głupie literowanie, teraz naprawione. Nie powinieneś nadpisywać zmiennej instrukcji.