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%)
-----


Musisz dynamicznie zbudować zapytanie oraz listę parametrów dla niego:
  1. $sql = 'SELECT * WHERE id = :id AND kolumna = :kolumna';
  2. $params = [
  3. ':id' => 123,
  4. ':kolumna' => 'Ala ma kota'
  5. ];
  6.  
  7. if (...) {
  8. $sql .= ' AND filtr = 1';
  9. }
  10.  
  11. if (...) {
  12. $sql .= ' AND some_column = :some_column';
  13. $params[':some_column'] = 'DEF';
  14. }
  15.  
  16. $stmt = $pdo->prepare($sql);
  17. $stmt->execute($params);
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: 8.10.2025 - 07:30