【发布时间】:2014-02-25 13:58:11
【问题描述】:
编辑:我发现问题在于 PHP 中的多个查询,那么 codeigntier 有什么锻炼方法?我必须自己使用 mysqli 函数还是可以使用内置的 Codeigniter DB 类?
我有一个查询在我将其粘贴到 PHPMyAdmin 时运行良好,但是当我在 codeigniter 中运行它时会导致语法错误,谁能提供帮助?
这里是 SQL
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'MAX(IF(user_fields_to_users.map_field_id=''',field_id,''',user_fields_to_users.map_data,NULL)) AS ', field_name)) INTO @sql
FROM user_custom_fields;
SET @sql = CONCAT('SELECT *
,', @sql, '
FROM user_accounts LEFT JOIN user_fields_to_users ON
user_accounts.user_id = user_fields_to_users.map_user_id
GROUP BY user_accounts.user_id');
PREPARE stmt FROM @sql;
EXECUTE stmt;
我正在使用 mysqli 和 codeigniters $this->db->query();
我得到的错误是
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT GROUP_CONCAT(DISTINCT CONCAT( 'MAX(IF(user_fields_t' at line 3
【问题讨论】:
-
尝试将
SET @sql = NULL;作为单独的查询运行 -
为什么要在
MAX前加上单引号? -
我老板写的所以我不确定,我会问
-
@ajtrichards 当我这样做时似乎到达第 8 行,在下一个 SET 命令处停止
-
我看到这是一个多查询问题...
标签: php mysql sql codeigniter mysqli