1
我想将我的PDO查询参数作为数组传递给我的execute()方法,而不是使用PDO的bindParams。我这样做,所以我可以创建一个函数来动态执行具有不同数量参数的类似查询。
的bindParam()途径产生预期的结果:
$stmt->bindParam(":user_id",$user_id,PDO::PARAM_INT);
$stmt->bindParam(":n",$n,PDO::PARAM_INT);
$stmt->execute();
但是这个方法返回一个空集,没有错误抛出:
$params = array(":user_id"=>$user_id,":n"=>$n);
$stmt->execute($params);
有人能向我解释一下这些之间的区别有两种方法,是什么导致我的问题?我看到的唯一区别是当我传递$ params作为.execute的参数时,我没有机会指定类型(POD :: PARAM_INT)。如果这是问题,是否有解决方法?
这不是一个重复的问题。那个问题问哪一个使用,我的问题是如何正确使用execute。在将问题标为重复之前,请仔细阅读。 – nathan
你的问题是一个典型的[** xy问题**](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)如果你问过绑定LIMIT变量,你会有发现很多答案[** ie **](http://stackoverflow.com/questions/2269840/php-pdo-bindvalue-in-limit) –
@davidstrachan,我同意。我尽量具体,但在提出问题时,我没有意识到LIMIT的价值与我的问题有任何关系。 – nathan