让对PDO的引用等于PDO对象,而不是PDO本身-
我在这里看到同时存在PDO->query()和PDO->exec()。在被链接的页面,似乎PDO->query();是用于SELECT报表ONLY,并PDO->exec()用于UPDATE,INSERT,DELETE语句。现在,我是全新的,以PDO,所以我不知道什么是使用它的条款上会 相当尚未 ,所以我将不胜感激为什么要使用不同的方法解释,为什么有不同的方法。
PDO->query()
PDO->exec()
PDO->query();
SELECT
UPDATE
INSERT
DELETE
尽管在理论上有任何差异,但无论如何都不应使用这些功能-因此,无需担心。
使用PDO的唯一原因是 对准备好的语句的支持 ,但是这些功能都没有提供它。因此,不应使用它们。
prepare()/execute()改为使用它, 尤其是 用于UPDATE,INSERT,DELETE语句。
prepare()/execute()
请注意,尽管准备好的声明被广泛宣传为一种安全措施,但这仅仅是为了引起人们的注意。但是它们的 真正 目的是 正确的查询格式 。这也为您提供了安全性-格式正确的查询也无法注入-就像副作用一样。但是,再次强调-格式化是主要目标,因为即使格式正确,即使是无辜的数据也可能导致查询错误。
编辑:请注意,execute()仅返回TRUE或FALSE表示操作成功。对于其他信息,例如受受影响的记录数,提供了UPDATE方法rowCount()。请参阅文档。
execute()
TRUE
FALSE
rowCount()