2010-07-30 40 views
1

PARAMS:我如何可以綁定在PHP PDO參數凡在聲明

$params = 2826558;      # Necessary Object 
$params = array(2826558,2677805,2636005); # NULL 

執行代碼:

$data = $this->DQL_selectAllByCampaign_id() 
       ->execute(array($params)) 
       ->fetchAll(); 

    var_dump($data); 

SQL查詢:

$this->DQL_selectAllByCampaign_id = $this->conn->prepare(

     "SELECT * FROM `banner` WHERE `campaign_id` IN (?)" 

); 

如果$params是整數,退貨必需的對象。 如果$params是數組,則返回NULL。

畢竟,事實上它應該工作......我該怎麼做?

+4

見http://stackoverflow.com/questions/920353/php-pdo-can-i-bind-an-array-to-an-in-condition – andr 2010-07-30 18:27:33

+0

不幸的是,我沒有直接訪問PDO對象,我只有$ this-> DQL_selectAllByCampaign_id()當前數組值。我試圖implode(',',$ params),但不成功,在數組的第一個元素中只接收id的行。 – ajile 2010-07-30 18:54:36

回答

1

我很確定這不是'正確的'答案,但我們通過在count($ array)佔位符中添加來解決此問題。然後使用call_user_func_array我們通過PARAMS在

感謝您提出這個 - 將interesing找出什麼做的正確方法,這是...

+0

我找到了你說的解決方案 - http://www.php.net/manual/en/pdo.prepare.php。顯然這是最常見的解決方案。但它是一個柺杖。我會尋找一個比這更美麗的解決方案,但仍然如此。 – ajile 2010-07-30 18:47:52