Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Odbieranie odpowiedzi od PDO
Forum PHP.pl > Forum > Przedszkole
koxu1996
Witam. Od niedawna przestawiam się na PDO, lecz mam drobne problemy, a mianowicie chodzi mi o to jak pdo zwraca wynik zapytania. Gdy zrobię takie zapytanie: SELECT `name` FROM `categories` to fetchAll() zwraca mi coś takiego:
  1. Array ( [0] => Array ( [name] => Kategoria [0] => Kategoria ) [1] => Array ( [name] => Inna kategoria [0] => Inna kategoria ))
Przez to że tablica jest dwuwymiarowa źle się na niej operuję. Czy można jakoś to zmienić ewentualnie jak zrobić żeby wypisać po kolei nazwy kategori?
mmmmmmm
PDO::FETCH_ASSOC
koxu1996
Dzięki, o to właśnie mi chodziło!

Sory za drugi post ale po edycji temat nie idzie na początek i pewnie nikt by nie przeczytał.
Mam takie pytanie: czy można zobaczyć wygląd całego zapytania łącznie z zbindowanymi wartościami? Bo do jednej rzeczy binduje taki string: (1,2,4)
a pdo chyba wrzuca to jako '(1,2,4)' i dostaje taki błąd:Something is wrong in your syntax obok ''(1,2,4)' LIMIT 0 , 50' w linii 2. Jak poprawnie zbindować to?
nospor
To może byś pokazał kod.... skad mamy wiedzieć co robisz źle? Z fusów nie wywróżymy.
koxu1996
Toż to już wszystko napisałem. Chodzi mniej więcej o coś takiego:
  1. $tablica = "(1,2,3)";
  2. $sth = $dbh->prepare('SELECT * FROM `fruit` WHERE `type` IN :array');
  3. $sth->bindValue(':array', $tablica, PDO::PARAM_STR);
  4. $sth->execute();

Ten kod wykona takie zapytanie: SELECT * FROM `fruit` WHERE `type` IN '(1,2,3)'
Jak powinno wyglądać: SELECT * FROM `fruit` WHERE `type` IN (1,2,3)
Te liczby powinny być bez apostrofów bo inaczej jest błąd
nospor
Kod wyjaśniający nigdy nie zaszkodzi. To chyba tobie zależy na pomocy a nie nam wiec się nie denerwuj...

Nie można tak bindować. Musisz ręcznie stworzyć te IN w zapytaniu.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.