当前位置: 首页 > 面试题库 >

在pdo中绑定多个值

汪德寿
2023-03-14
问题内容

有没有一种简单的方法就可以在PDO中绑定多个值而无需重新分配?看下面的代码:

$result_set = $pdo->prepare("INSERT INTO `users` (`username`, `password`, `first_name`, `last_name`) VALUES (:username, :password, :first_name, :last_name)");

$result_set->bindValue(':username', '~user');
$result_set->bindValue(':password', '~pass');
$result_set->bindValue(':first_name', '~John');
$result_set->bindValue(':last_name', '~Doe');

$result_set->execute();

在这里,我以重复的方式将值绑定了4次。那么,有没有一种简单的方法可以在PDO中绑定多个值?


问题答案:

execute()只要您可以将值视为PDO::PARAM_STR(字符串),就可以始终将其绑定在参数中。

$result_set = $pdo->prepare("INSERT INTO `users` (`username`, `password`, `first_name`, `last_name`) VALUES (:username, :password, :first_name, :last_name)");
$result_set->execute(array(
    ':username' => '~user',
    ':password' => '~pass',
    ':first_name' => '~John',
    ':last_name' => '~Doe'
));

您可以像任何数组一样使用传递的数组:

$user = "Nile";
$pdo->execute(array(":user" => $user));


 类似资料:
  • 问题内容: 我正在使用PDO,是否需要清理GET参数? 我知道我是否比那不是问题。但是我的方式安全吗? 问题答案: 是的,这很安全。和之间的唯一区别是: 一次接受多个参数,而每个参数都必须 允许您指定参数类型,同时将所有内容绑定为字符串 将参数传递给通常是一个方便的快捷方式,它仍然是安全的。

  • 问题内容: 在这个查询中 我正在尝试将变量与PDO 绑定。不确定最后如何处理。 可不可能是 绑定到哪里 还是会 绑定到哪里 还是会完全不同? 问题答案: 您还可以说: 在MySQL末尾进行字符串连接,并不是在这种情况下有任何特殊原因。 如果要查找的部分本身可以包含百分比或下划线字符(因为这些字符对LIKE运算符具有特殊含义)或反斜杠(MySQL用作LIKE运算符的另一种转义层),则事情会变得更加棘

  • 问题内容: 从PHP 5.3版开始,已对驱动程序进行了补充。它引入了对多个查询的支持。 但是,如果传递了多个查询,我无法弄清楚如何获得两个结果集。这两个查询都已执行,不可能是第二个查询刚刚被转储。 返回值: 问题答案: 原来,您需要使用。 这将返回第二个查询的结果。 这是一个有点奇怪的实现。如果多查询语句仅将两个结果集返回在一个数组下,那肯定会更容易。但是,优点是此实现允许使用不同的FETCH样式

  • 我在Scala2.11中使用Play Framework 2.3.8(针对Java)。 我在这里和邮件列表中读到了很多类似的问题。示例:如何在Play 2.3.x启动时修复“SLF4J:类路径包含多个SLF4J绑定”?常见的解决方案是使用某种形式的排除规则。建议的解决办法对我都不起作用。[更新:事实上,他们有--见下面的解决方案。]我不希望slf4j-simple出现在最后一个类路径中,但它确实出

  • 这可能是一个重复的问题,但我无法弄清楚绑定冲突在哪里。我有我的服务,当我运行它时,我得到了这个错误: 这是输出 显然,问题在于<code>logback</code>仍然在类路径中,但我在输出中找不到它,所以我不知道问题出在哪里。 你能发现错误吗?我将感谢你的帮助 这仅在我将服务器作为Spring Boot Application运行时发生。如果我将其作为java应用程序运行,错误就消失了....

  • 我正在尝试运行gradle从IntelliJ IDEA生成的战争。 tomcat实例运行时的输出: