【问题标题】:php pdo bind array parameters in bindParam without foreach loop [duplicate]没有foreach循环的bindParam中的php pdo绑定数组参数[重复]
【发布时间】:2018-03-12 16:31:39
【问题描述】:

有没有办法在pdobindParam 函数中绑定数组参数而不使用foreach 语句? (类似于mysql.connector 中的python)。
foreach 版本是这样的:

$data = array('name'=>'something','job'=>'something else');
foreach($data as $key => $value){
    $stmt->bindParam(':'.$key, $value);
}

【问题讨论】:

标签: php mysql pdo


【解决方案1】:

许多 PDO 用户认为他们必须使用 bindParam()。你没有。

您可以使用所有参数值将数组直接传递给execute()。就这么简单:

$stmt->execute($data);

如果您在 SQL 中使用命名参数,请使用哈希数组。如果使用位置参数,请使用普通数组。

如需更完整的代码示例,请在此处阅读:http://php.net/manual/en/pdo.prepare.php

【讨论】:

  • 我的$data数组中的键开头没有冒号(:),所以也许我应该使用array_map修改它然后使用execute
  • @MehrdadEP 没有冒号也没关系。它仍然可以工作。
  • @Don'tPanic 好的,谢谢。
  • 是的,在旧版本的 PDO 中,数组键需要有一个冒号前缀,但那是很久以前的事了。没有理由再这样做了。
  • @BillKarwin 我想我对指定它们的文档感到困惑。直到现在我才知道实施。谢谢
猜你喜欢
  • 2015-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-11
  • 2014-10-24
  • 2011-05-09
相关资源
最近更新 更多