PDO->query() 和 PDO->exec() 之间的区别

2022-08-30 22:59:34

我看到两者都有。在链接的页面中,它似乎仅用于语句,并用于 ,, 语句。为什么存在这些方法,何时使用它们?PDO::query()PDO::exec()PDO::query()SELECTPDO->exec()UPDATEINSERTDELETE


答案 1

无论理论上有什么区别,也都不应该使用。这些函数不允许您将参数绑定到预准备语句,并且永远不应使用。PDO::query()PDO::exec()

请改用,尤其是更新、插入、删除语句。prepare()/execute()

请注意,尽管预先准备好的声明被广泛宣传为一种安全措施,但它只是为了吸引人们的注意。但它们的真正目的是正确的查询格式。这也为您提供了安全性 - 因为无法注入格式正确的查询 - 只是作为副作用。但同样 - 格式化是一个主要目标,因为如果格式不正确,即使是无辜的数据也可能导致查询错误。


答案 2

查看 PDO 的官方文档

这两个函数都执行查询,但仅返回受影响的行数。这对于不返回任何有用内容的查询很有用,并且仅对知道是否修改了正确的行数有用。exec()UPDATE


推荐