Przechowuj i iteruj wyniki zapytania w mysqli
To jest moje proste zapytanie w php, używając stylu obiektowego mysqli:
$query = "SELECT name FROM usertable WHERE id = ?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param('i', $id);
$id= $_GET['id'];
$stmt->execute();
$stmt->bind_result($name);
while($stmt->fetch()){
echo $name." ";
}
$stmt->free_result();
$stmt->close();
To działa dobrze. Otrzymuję listę nazw pobranych z instrukcji select.
Teraz w środku chcę użyć$name
zmienna jako parametr dla innego zapytania, ale mysqli na to nie zezwala, ponieważ muszę zamknąć pierwsze zapytanie, a następnie wywołać drugie zapytanie.
Myślę więc, że muszę zapisać wynik pierwszej kwerendy, a następnie iterować wynik wywołując nowe zapytanie.
Próbowałem:
$query = "SELECT name FROM usertable WHERE id = ?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param('i', $id);
$id= $_GET['id'];
$stmt->execute();
//$stmt->bind_result($name);
$result = $stmt->store_result();
$stmt->free_result();
$stmt->close();
while ($row = $result->fetch_row())
{
echo $row[0]." ";
}
Ale to nie działa. Kod wewnątrz, podczas gdy nigdy nie zostanie osiągnięty.
N.B.: Chcę uniknąć użyciamulti_query()
.