如何解决CakePHP在许多“ SET CHARACTER SET utf8”查询中找到调用结果为什么?
| CakePHP对简单的find(\“ all \”)(递归属性默认为0)连续38次执行查询“ SET CHARACTER SET utf8”的原因是什么? 我使用MySQL作为数据库,假设我创建了一个如下所示的users表: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中,我写了一个动作:
$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\'
);
解决方法
这种事情在调试中是预期的,蛋糕使用信息来工作。当您关闭调试时,它应该全部消失
, 问题解决了。就我而言,这是一个错误。 AppModel中的构造函数如下:
$this->query( \"SET CHARACTER SET utf8;\" );
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。