0

我正在使用 MDB2 对我的 MySQL 数据库进行查询,但是当我查询数据库时,MySQL 日志跟踪 2 个语句:第一个是解释语句,第二个是我的查询。

这是代码:

$sql = "SELECT 1 FROM DUAL";
$mdb2Instance = new MDB2();
$options = array(
        'portability' => MDB2_PORTABILITY_ALL ^ MDB2_PORTABILITY_FIX_CASE,
    );
$connection = $mdb2Instance->singleton($dsn, null);
$connection->setFetchMode(MDB2_FETCHMODE_ASSOC);
$connection->query($sql);

我在 MySQL 中得到以下日志:

    5 Init DB   cma
    5 Query EXPLAIN SELECT 1 FROM DUAL
    5 Query SELECT 1 FROM DUAL
    5 Quit

有人可以解释一下发生了什么以及如何防止这种情况发生吗?

问候
阿尔班

4

1 回答 1

0

这是由 PHP 配置指令引起的>mysql.trace-mode

将此设置设置为 On 时,每个查询都以EXPLAIN查询开头。PHP 手册并没有说会发生这种行为,很遗憾它会严重破坏事情(很多应用程序都依赖于类似的查询FOUND_ROWS())。

将其设置为关闭应该可以解决您的问题。

于 2012-02-22T16:18:10.830 回答