让PDO引用PDO对象而不是PDO本身 –
我看到here有两个PDO-> query()和PDO-> exec().在链接的页面中,看起来PDO-> query();仅用于SELECT语句,PDO-> exec()用于UPDATE,INSERT,DELETE语句.现在,我对PDO来说是全新的,所以我不知道在使用方面还有什么变化,所以我很欣赏一下为什么要使用不同的方法,为什么有不同的方法.
尽管有什么理论上的差异,但是这些功能都不应该被使用 – 所以没有什么可担心的.
使用PDO的唯一原因是对准备语句的支持,但这些功能都没有提供.所以不应该使用它们.
请改用prepare()/ execute(),特别是UPDATE,DELETE语句.
请注意,尽管准备好的声明被广泛宣传为安全措施,但只能吸引人们的注意.但它们的真正目的是正确的查询格式.这也给你安全 – 正确的格式化查询不能被注入 – 就像副作用一样.但再次 – 格式化是一个主要目标,只是因为即使无辜的数据可能会导致查询错误(如果格式不正确).
编辑:
请注意,execute()仅返回TRUE或FALSE以指示操作成功.对于其他信息,例如受UPDATE影响的记录数量,则提供诸如rowCount()之类的方法.见docs.