Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][pdo] Dodanie kawałka zapytania przy prepare() i bindValue()?
luis2luis
post 26.03.2020, 13:05:29
Post #1





Grupa: Zarejestrowani
Postów: 190
Pomógł: 0
Dołączył: 25.11.2015

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


Witam.
Jestem w trakcie nauki obsługi zapytań za pomocą PDO. Posiadam pewną klase wspomagającą, która fajnie się sprawdza przy operacjach INSERT i UPDATE.

Mam problem z wykonaniem zwykłego zapytania SQL w którym doklejam ze zmiennej kawałek kodu w zależności od potrzeb.

Otrzymuje błąd, że zapytanie jest niepoprawne,:
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' ORDER BY z.id DESC LIMIT 100' at line 1

  1.  
  2. $sql_kat_id = '';
  3. //NASZ DODATKOWY ELEMENT ZAPYTANIA
  4.  
  5. if (!empty($_GET['z'])) {
  6. if (is_array($_GET['z'])) {
  7.  
  8. if ( count($_GET['z']) > 1) { //jesli pare kategorii
  9. $sql_kat_id = " AND z.kat_id IN (".ltrim(implode(',',$_GET['z']),',').") ";
  10. } else { //jesli jedna kategoria
  11. $sql_kat_id = " AND z.kat_id = ".(int)trim($_GET['z'][0])." ";
  12. }
  13.  
  14. } else { //jesli jedna kategoria
  15. $sql_kat_id = " AND z.kat_id =".(int)trim($_GET['z'])." ";
  16. }
  17. }
  18.  
  19.  
  20. $pdo = new DB;
  21. $pdo->setParameters($dbhost, $dbname, $dbuser, $dbpass);
  22. $pdo->setTablePrefix($dbprefix);
  23. $pdo->setCharset($config["encoding"]);
  24.  
  25. try {
  26. $sqlQuery = "SELECT k.*, z.* FROM ".$dbprefix."blog_art z, ".$dbprefix."blog_kat k WHERE z.user_id=k.user_id AND z.active =1 :kat_id ORDER BY z.id DESC LIMIT 100;";
  27.  
  28. $stmt = DB::getInstance()->prepare($sqlQuery);
  29. $stmt->bindValue(':kat_id', $sql_kat_id, PDO::PARAM_STR);
  30. $stmt->execute();
  31. $result = $stmt->fetchAll();
  32.  
  33. print_r($result);
  34. $stmt = null;
  35.  
  36. } catch(PDOException $e) {
  37. echo $e->getMessage();
  38. }
  39.  
  40.  


Czy można w takie sposób za pomocą BindValue wklejać całe kawałki kodu, czy nie jest taki kod realizowany?

Ten post edytował luis2luis 26.03.2020, 13:06:55
Go to the top of the page
+Quote Post

Posty w temacie


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 Wersja Lo-Fi Aktualny czas: 20.04.2024 - 09:15