2013-07-16 43 views
-1

我有一個像這樣的pdo命令$sql = $pdoObj->execute($query)但它不起作用,0返回結果。在調用​​之前,我重複了$query變量,然後將其粘貼到​​中,並且代碼成功運行。我不明白這裏有什麼問題,因爲我在代碼的其他部分沒有問題地完成了這個任務。 下面是查詢的一些例子:當傳遞一個變量作爲查詢時,pdo查詢不會執行

SELECT s.id, s.marca, s.colore, s.prezzo, i.id_scarpa, i.taglia FROM scarpe AS s INNER JOIN info_scarpe AS i ON i.id_scarpa = s.id WHERE 1 = 1 AND taglia IN ('40','41','42') AND colore IN ('rosso', 'nero') 

SELECT * FROM scarpe WHERE 1=1 

SELECT * FROM scarpe WHERE 1=1 AND marca IN ('adidas','nike') 

他們是基於$_GET變量的所有動態生成的查詢。

編輯: 當然

if (isset($_GET)) { 

       if (isset($_GET['taglia'])) { 

        $query = " 
          SELECT 
           s.id, s.marca, s.colore, s.prezzo, i.id_scarpa, i.taglia 
          FROM 
           scarpe AS s 
          INNER JOIN 
           info_scarpe AS i 
          ON i.id_scarpa = s.id 
          WHERE 
           1 = 1 
        "; 
        foreach ($_GET as $index => $val) { 
         $a = explode(',', $val); 
         $in = "'" . implode("','", $a) . "'"; 
         $query .= ' AND '.$index.' IN ('.$in.')'; 
        } 
       } else { 
        $query = " SELECT * FROM scarpe WHERE 1=1"; 
        foreach ($_GET as $index => $val) { 
         $a = explode(',', $val); 
         $in = "'" . implode("','", $a) . "'"; 
         $query .= ' AND '.$index.' IN ('.$in.')'; 
        } 
       } 
       echo 'data loaded'; 
      } else { 
       $query = " SELECT * FROM scarpe ORDER BY id DESC "; 
      } 

EDIT2:

我用query(),而不是​​但仍然沒有爲execute工作

+0

你能張貼生成查詢你的PHP代碼? – lexmihaylov

回答

0

的參數應與查詢參數數組。你的意思是爲使用

$result = $pdoObj->query($query); 

OR

$stmt = $pdoObj->prepare($query); 
$stmt->execute(); 
+0

對不起,我的主要帖子不正確,我使用'query()'而不是'execute()'。儘管如此,它只有在我將查詢作爲文本傳遞而不是變量時才起作用。 – user2513485