gpt4 book ai didi

mysql - 在 Php MySQL 中执行的查询,但不在 Zend Framework 中执行

转载 作者:行者123 更新时间:2023-11-29 06:18:23 25 4
gpt4 key购买 nike

我有一个相当大的查询,它是在脚本中生成的,用于创建类似 View 的内容。对于一个应用程序。

这是正在生成的查询:

    SELECT * , if((SELECT `formId` from `ssp_mail_templates` WHERE `templateType`='boss'
AND `templateIsConfirmation`='0' AND `formId`=`id`) IS NULL,0,1) as bossTemplate ,
if((SELECT `formId` from `ssp_mail_templates` WHERE `templateType`='user' AND
`templateIsConfirmation`='0' AND `formId`=`id`) IS NULL,0,1) as userTemplate , if((SELECT
`formId` from `ssp_mail_templates` WHERE `templateType`='superuser' AND
`templateIsConfirmation`='0' AND `formId`=`id`) IS NULL,0,1) as superuserTemplate ,
if((SELECT `formId` from `ssp_mail_templates` WHERE `templateType`='boss' AND
`templateIsConfirmation`='1' AND `formId`=`id`) IS NULL,0,1) as bossConfirmation ,
if((SELECT `formId` from `ssp_mail_templates` WHERE `templateType`='user' AND
`templateIsConfirmation`='1' AND `formId`=`id`) IS NULL,0,1) as userConfirmation ,
if((SELECT `formId` from `ssp_mail_templates` WHERE `templateType`='superuser' AND
`templateIsConfirmation`='1' AND `formId`=`id`) IS NULL,0,1) as superuserConfirmation FROM
`ssp_form`

这是生成它的代码:

$valueArray = array('boss', 'user', 'superuser');
$selectString = "";
for ($i = 0; $i < 2; $i ++) {
$type="Template";
if($i==1){
$type="Confirmation";
}
foreach ($valueArray as $value) {

$selectString.=" , if((SELECT `formId` from `".$this->_templateName."` WHERE `templateType`='".$value."' AND `templateIsConfirmation`='".$i."' AND `formId`=`id`) IS NULL,0,1) as ".$value.$type;
}
}
$sql="SELECT *".$selectString." FROM `ssp_form` ";

$forms = $this->fetchAll($sql)->toArray();

因此,执行此操作后,PhpMySQL 返回:

显示第 0 - 0 行(总共 1 行,查询耗时 0.0009 秒)

当采埃孚返回时

Mysqli 准备错误:操作数应包含 1 列

我相信答案应该相当简单,但我就是想不出来。

最佳答案

原因是您使用 fetchAll 时使用了错误的参数。第一个参数应该是 Zend_Db_Table_Select 对象或进入 WHERE 子句的字符串(在您的情况下为空)。

要使此查询正常工作,您需要使用不同的方法:

$this->getAdapter()->query( $sql );

除此之外,我建议您重构您的 sql 查询。拥有如此多的 SELECT 语句即使不会影响性能,也会影响可读性。

关于mysql - 在 Php MySQL 中执行的查询,但不在 Zend Framework 中执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5198191/

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