Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]Odbieranie odpowiedzi od PDO
koxu1996
post
Post #1





Grupa: Zarejestrowani
Postów: 139
Pomógł: 3
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


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?

Ten post edytował koxu1996 6.05.2013, 13:52:24
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


PDO::FETCH_ASSOC
Go to the top of the page
+Quote Post
koxu1996
post
Post #3





Grupa: Zarejestrowani
Postów: 139
Pomógł: 3
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


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?

Ten post edytował koxu1996 7.05.2013, 13:38:19
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




To może byś pokazał kod.... skad mamy wiedzieć co robisz źle? Z fusów nie wywróżymy.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
koxu1996
post
Post #5





Grupa: Zarejestrowani
Postów: 139
Pomógł: 3
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


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

Ten post edytował koxu1996 7.05.2013, 17:06:51
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 08:43