gpt4 book ai didi

php - PDO::exec() 还是 PDO::query()?

转载 作者:IT王子 更新时间:2023-10-29 01:13:36 24 4
gpt4 key购买 nike

我曾经将此作为选项之一(第 4 个参数)传递给 PDO 构造函数:

$aOptions[PDO::MYSQL_ATTR_INIT_COMMAND] = "SET NAMES utf8";

但刚刚发现由于一些bug,它在Windows上的某些php版本上不起作用(在5.3中不起作用)。

现在我需要使用 $pdo->exec("SET NAMES utf8");

运行 SET NAMES utf8

$pdo->query("SET NAMES utf8");

在实例化 pdo 对象之后。那么,我应该使用哪一个 - exec() 或 query()?

最佳答案

使用 PDO::EXEC 时,返回的结果不是 PDOStatement,而是受影响行的整数。

当使用 PDO::QUERY 时,返回的结果是一个 PDOStatement

所以答案取决于你需要对数据做什么,如果你需要运行查询而不对结果做任何事情,那么你应该使用 exec 来执行查询,否则如果需要行数,返回的数据应该使用pdo::query,然后使用调用返回的结果。


关于该错误,您可以采取多种解决方法

  • 安装PDO_MYSQL
  • MYSQL_ATTR_INIT_COMMAND 替换为 1002
  • 将您的 PHP 更新到已通过并修补的最新稳定版本。

第二个问题可能在 64 位操作系统和某些 windows 配置上存在一些问题。

错误信息:http://bugs.php.net/bug.php?id=47224

关于php - PDO::exec() 还是 PDO::query()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4978481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com