官网介绍pdo的execute这么绑定命名参数,但是不写冒号也行

图片描述

然后我这么写:

clipboard.png
没写冒号,也可以执行的

阅读 3.3k
1 个回答

在PDO预处理绑定参数执行查询时有两种方式:

一种是"问号占位符"(从左到右,顺序一一对应):

$stmt = $db->prepare('UPDATE posts SET post_title = ?, post_content = ? WHERE id = ?');
$stmt->execute(array($title, $content, $id)); //所有值视作PDO::PARAM_STR处理

一种是"命名占位符":

$stmt = $db->prepare('UPDATE posts SET post_title = :title, post_content = :content WHERE id = :id');
$stmt->execute(array(':title' => $title,':content' => $content,':id' => $id)); //所有值视作PDO::PARAM_STR处理

你说的省略冒号的哪种做法也的确可以执行,不过还是建议按官方文档说的那样做更保险.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题