2010-07-30 59 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