【发布时间】:2015-12-27 13:28:29
【问题描述】:
我想我已经阅读了很多关于该问题的主题,但仍然得到错误的结果。
我有一个查询参数数组,我想用foreach() 循环来绑定参数。
foreach($aQueryParams as $key => &$value){
$stmt->bindParam($key, $value);
}
这涉及INSERT 查询,结果我得到的是插入表中的键而不是值。但我确信钥匙和价值都很好,而且在好地方。在$key 和$value 上的var_dump() 为$key 和&$value 提供:firstName 和Samy。但这是插入到我的表中的:firstName...
我还尝试使用 bindValue 而不使用引用,结果相同。
为了更清楚,我给你 gitHub 存储库的链接。您可以在第 44 行的 ClientManager.class.php 中看到参数数组的声明,以及在第 97 行的 DBOperation.class.php 中绑定参数的 foreach() 循环。 https://github.com/code-climber/car_rental/blob/preparedStmt/src/car_rental/model/dao/ClientManager.class.php
我要疯了。
【问题讨论】:
-
由于我看不到您的其余代码,我假设它与此重复:stackoverflow.com/questions/3307409/…。如果没有,您究竟想通过参考来完成什么?
-
为什么不直接将参数与
execute()中的数组绑定呢?我个人觉得这不那么麻烦。 -
迈克,我不认为这是重复的,因为我只有一个 foreach() 循环。我想要完成的事情很简单。我的参数数组就像':login'=>'Samy',我想在我的表中插入值'Samy',但现在,这是插入的键':login'。 Rasclatt,你能举个例子吗,因为现在,我总是看到人们在 execute() 之外绑定参数。我使用指向此代码的 gitHub 链接编辑我的帖子。
标签: php loops pdo pass-by-reference bindparam