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

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

汪晟睿
2023-03-14
问题内容

让对PDO的引用等于PDO对象,而不是PDO本身-

我在这里看到同时存在PDO->query()PDO->exec()。在被链接的页面,似乎PDO->query();是用于SELECT报表ONLY,并PDO->exec()用于UPDATEINSERTDELETE语句。现在,我是全新的,以PDO,所以我不知道什么是使用它的条款上会
相当尚未 ,所以我将不胜感激为什么要使用不同的方法解释,为什么有不同的方法。


问题答案:

尽管在理论上有任何差异,但无论如何都不应使用这些功能-因此,无需担心。

使用PDO的唯一原因是 对准备好的语句的支持 ,但是这些功能都没有提供它。因此,不应使用它们。

prepare()/execute()改为使用它, 尤其是 用于UPDATE,INSERT,DELETE语句。

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

编辑:请注意,execute()仅返回TRUEFALSE表示操作成功。对于其他信息,例如受受影响的记录数,提供了UPDATE方法rowCount()。请参阅文档。



 类似资料:
  • 问题内容: 我一直想在Google上找到这四个之间的区别,我希望这方面会有大量的信息,但是这四个调用之间确实没有任何可靠的比较。 我着手尝试汇编一下这些系统调用之间的区别的基本概况,这就是我得到的。所有这些信息是否正确/我是否缺少任何重要信息? :fork调用基本上是对当前过程进行复制,几乎在所有方面都相同(例如,并非在某些实现中都复制了所有内容,例如,在某些实现中资源有限,但其想法是创建尽可能近

  • 问题内容: 两者都将能够在容器中执行命令。两者都可以分离容器。 那么docker exec和docker attach之间的真正区别是什么? 问题答案: 有一个提交PR添加到文档中: 注意: 此命令()不适用于在容器中运行新进程。请参阅:。 回答“ Docker。如何在运行的容器()中获取bash \ ssh ? ”阐明了区别: (docker> = 1.3)如果使用, 则只能使用shell的一个

  • pdo

    PDO Object Medoo是一个基于PDO的项目.你通过 $database->pdo, 能够使用更多的PDO方法, 预定义,事务 , 回滚 等. 更多关于 PDO 的使用, 请阅读: http://php.net/manual/en/class.pdo.php. Transaction (事务) $database->pdo->beginTransaction();$database->i

  • pdo

    PDO Object Medoo是一个基于PDO的项目.你通过 $database->pdo, 能够使用更多的PDO方法, 预定义,事务 , 回滚 等. 更多关于 PDO 的使用, 请阅读: http://php.net/manual/en/class.pdo.php. Transaction (事务) $database->pdo->beginTransaction();$database->i

  • pdo

    Raw Object Medoo可以使用原始表达式来进行复杂的或自定义的查询,尤其是在使用SQL内置函数的时候.支持占位符号,以防止注入和优化语法. Medoo::raw($query, $map) 查询列中使用可以直接在select()中做为字段查出,这时候key值将做为别名使用 $data = $database->get('account', [ 'user_name', 'use

  • 问题内容: 我已经考虑了一段时间了。 考虑一个比例很大的Web应用程序,例如,每秒执行数百万个SQL查询。 我运行我的代码: 然后紧接着,我想获取此最后一个查询的自动递增的ID: lastInsertId是否有可能失败,即获取 在 我的两个代码块 之间 执行的某些SQL插入查询的ID ? 次要: 如果失败了,堵塞这种可能的泄漏的最佳方法是什么? 可以肯定的是,创建另一个SQL查询以从数据库中获取正