【发布时间】:2015-07-19 21:29:03
【问题描述】:
重复标记的链接地址部分“如何配置时区?”,我 遵循相同但它给了我一个错误,如下所述
我在我的 php 页面上看到以下错误
Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.
我已经解决了多个相同性质的问题,但在我的具体案例中无法理解问题。
这是我要运行的查询
SELECT count(*) as total FROM my_company en
ORDER BY cmpid ASC
注意:这是第一个查询,执行之前没有查询。我虽然可能会错过$stmt->closeCursor();,但事实并非如此。
但是我确实对设置数据库时区进行了一些更改 我的代码适用于以下代码
$pdo = new PDO ( "mysql:host=$hostname;dbname=$dbname", $username, $password );
我想实现以下事情(设置mysql的时区)
mysql_query("SET time_zone = 'UTC';SET NAMES utf8 ;");
所以对于PDO,我进行了以下更改,现在我的代码不起作用。
$pdo= new PDO ( "mysql:host=$hostname;dbname=$dbname",
$username, $password,
array(PDO::MYSQL_ATTR_INIT_COMMAND =>"SET NAMES utf8;SET time_zone = 'UTC'") );
这里是代码如果这可能有帮助
try {
$statement = $pdo->prepare ( $sql );
$statement->execute(); //exception on this line
$result = $statement->fetch ( PDO::FETCH_ASSOC );
$statement->closeCursor();
unset($statement);
} catch ( PDOException $e ) {
sqlDie("Error: ", $e->getMessage(), $e->getCode(), array('exception' => $e));
}
我的系统配置
Windows 7
PHP 5.4.12
MySQL 5.6.12
Apache 2.4.4
【问题讨论】:
-
我按照相同的链接配置时区。但它给了我错误
-
能多给点代码和php版本吗?
-
已添加到问题中