Php 如何在CodeIgniter中执行准备好的语句
我可以在MySQL中执行以下语句:Php 如何在CodeIgniter中执行准备好的语句,php,mysql,codeigniter,prepared-statement,Php,Mysql,Codeigniter,Prepared Statement,我可以在MySQL中执行以下语句: SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT'MAX(IF(Name = ''', Name, ''', Name, NULL)) AS `', Name, '`') INTO @sql from Contact_Types; SET @sql = CONCAT('SELECT c.First_Name, ', @sql, ' from Contacts c left join Contacts_Contac
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT'MAX(IF(Name = ''', Name, ''', Name, NULL)) AS `', Name, '`') INTO @sql
from Contact_Types;
SET @sql = CONCAT('SELECT c.First_Name, ', @sql, ' from Contacts c
left join Contacts_Contact_Types cct
on c.Contact_Id = cct.Contact_Id
left join Contact_Types ct
on cct.Contact_Type_Id = ct.Contact_Type_Id
group by c.Contact_Id');
PREPARE statement FROM @sql;
EXECUTE statement;
DEALLOCATE PREPARE statement;
这个准备好的语句允许我动态检索与联系人关联的“联系人类型”。如何在CodeIgniter中执行这个准备好的语句并检索结果?我在CI文档中找不到这方面的任何提及
尝试执行以下操作时,我收到SQL语法错误:
$this->db->query("PREPARE statement FROM @sql; EXECUTE statement; DEALLOCATE PREPARE statement;");
谢谢你能提供的任何帮助 您是否尝试过使用CI查询功能<代码>$this->db->query(“选择…”)代码>@DinRevah是的,我试过了,但运气不好。例如,我使用
$this->db->query(“PREPARE statement FROM@SQL;EXECUTE statement;DEALLOCATE PREPARE statement;”)收到一个SQL语法错误代码>谢谢你的回复。为什么不直接使用Codeigniter查询生成器进行查询?@DinRevah我不确定你指的是什么。不过,我通常使用活动记录进行查询。ActiveRecordCodeIgniter文档也没有提到执行准备好的语句。