gpt4 book ai didi

mysql - CakePHP 在许多 "SET CHARACTER SET utf8"查询中找到调用结果。为什么?

转载 作者:可可西里 更新时间:2023-11-01 08:37:42 25 4
gpt4 key购买 nike

CakePHP 为简单的 find("all")(递归属性默认值为 0)连续执行查询“SET CHARACTER SET utf8”38 次的原因是什么?

我使用 MySQL 作为数据库,假设我创建了一个如下所示的用户表:

CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
username char(50) UNIQUE,
password char(40),
post_id INT,
created DATETIME,
modified DATETIME,
CONSTRAINT PRIMARY KEY (id),
CONSTRAINT FOREIGN KEY (post_id) REFERENCES posts (id)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=INNODB;

和一个看起来像这样的帖子表:

CREATE TABLE posts (
id INT NOT NULL AUTO_INCREMENT,
title VARCHAR(30) NOT NULL,
content TEXT NOT NULL,
CONSTRAINT PRIMARY KEY (id)
) ENGINE=INNODB;

在我的 users_controller.php 中,我写了一个 Action :

$log = $this->User->getDataSource()->getLog(false, false);
$this->User->find("all",
array(
'conditions' => array('id' => 3),
'recursive' => 0
));
debug($log);

我没有用上面的数据对此进行测试,但显示了上面的表格,因为它们与我当前的数据库相似。我在 engine=innodb 中使用了 25 个表。

调试是一个包含 41 个查询的数组,其中 2 个查询检索用户和帖子。其他 39 个查询是相同的,如下所示:

    Array
(
[log] => Array
(
[0] => Array
(
[query] => SET CHARACTER SET utf8;
[error] =>
[affected] => 0
[numRows] =>
[took] => 0
)

[1] => Array
(
[query] => SET CHARACTER SET utf8;
[error] =>
[affected] => 0
[numRows] =>
[took] => 0
)
.
.
.
[38] => Array
(
[query] => SET CHARACTER SET utf8;
[error] =>
[affected] => 0
[numRows] =>
[took] => 0
)

这是应该发生的吗?在我的 config/database.php 文件中,是否将编码设置为“utf8”并不重要。我确实想要“utf8”,但我不想要 38 个不必要的查询。

var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'mylogin',
'password' => 'mypassword',
'database' => 'mydatabase',
'encoding' => 'utf8'
);

最佳答案

这种事情在调试中是预料之中的,蛋糕使用这些信息来工作。当您关闭调试时,它应该全部消失

关于mysql - CakePHP 在许多 "SET CHARACTER SET utf8"查询中找到调用结果。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6326217/

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