Próbuję użyć mysqli do przygotowania instrukcji, aby bezpiecznie przekazać wartości zmiennych do zapytania. Wszystko to działa dla mnie, ale problemem, na który napotykam, jest uzyskanie wyniku w tablicy asocjacyjnej. Oto moja konstrukcja tej pory:PHP mysqli - zwraca tablicę asocjacyjną z przygotowanej instrukcji
$query = $c->stmt_init();
$query->prepare("SELECT e._id,e.description,e.eventDate,e.eventTime,e.address,e.locationDescription,i.guestId,r.guestId IS NOT NULL AS 'RSVP-ed' FROM eventList AS e JOIN inviteList AS i ON e._id = i.eventId LEFT JOIN rsvpList AS r ON r.eventId = e._id AND i.guestId = r.guestId JOIN guestList AS g ON g._id = i.guestId WHERE g.groupName = ?");
$query->bind_param('s',$groupName);
if ($result = $query->execute()){
$a = $result->fetch_array(MYSQLI_ASSOC); // this doesn't work :/
} else{
error_log ("Didn't work");
}
Jak widać, mam wiele kolumn uzyskiwanie przekazywane z powrotem więc chciałbym nie muszą wiązać je do każdej zmiennej.
Ponadto celem końcowym jest przekazanie tablicy asocjacyjnej zakodowanej przez json do reszty mojej aplikacji.
Znalazłem problem w dokumentacji php i na wymianie stosu i znalazłem sugestie, ale nie mogę ich zmusić do działania. Czy ktoś mógłby pomóc?
niesamowite, że pracował i zwrócony asocjacyjną array, ale zwraca tylko pierwszy wiersz zapytania. Czy muszę umieścić go w pętli foreach, aby wyciągnąć pozostałe wiersze i wstawić je do nowej tablicy? –
@ChrisSchmitz tak, wystarczy pętla 'while while ($ row = $ result-> fetch_array (MYSQLI_ASSOC)) {var_dump ($ row); }; ' –
Ta opcja jest dostępna tylko dla mysqlnd – greg