Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PDO] zapytanie SELECT a bindowanie
--piotr--
post
Post #1





Goście







Uczac sie PDO trafilem na problem.
Otóz chce zadac zapytanie przez prepare/execute typu:

SELECT * WHERE id = :id AND kolumna = :kolumna

i teraz bindujac obie wartosci wszystko jest cacy.
Kiedy warunki w zapytaniu chce generowac dynamicznie pojawia się problem.
Załózmy ze w zaleznosci od innych zmiennych potrzebuje do powyzszego zapytania dodac kolejny warunek:

SELECT * WHERE id = :id AND kolumna = :kolumna AND filtr = 1

Z mysql_query robilem to sklejając zapytanie w php.
W pdo jest problem, poniewaz powyzsze zapytanie w takiej formie ( tzn. kolumna filtr ma stala wartosc '1') nie wykonuje się poprawnie. Jest na to jakis sposob?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


PDOStatement::execute traktuje wszystkie parametry jako stringi. Jeżeli chciałbyś jednak móc dokładnie określić co jest przesyłane, musiałbyś to trochę rozbudować, do czegoś mniej-więcej takiego:
  1. $params['...'] = ['123', PDO::PARAM_STR];
  2. $params['...'] = [123, PDO::PARAM_INT];
  3.  
  4. // ...
  5.  
  6. $stmt = $pdo->prepare($sql);
  7.  
  8. foreach ($params as $key => $param) {
  9. $stmt->bindValue($key, $param[0], $param[1]);
  10. }
  11.  
  12. $stmt->execute();
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 7.10.2025 - 14:12