首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从php中的行创建动态枢轴列

从php中的行创建动态枢轴列
EN

Stack Overflow用户
提问于 2016-06-29 13:19:08
回答 1查看 624关注 0票数 0

我正在尝试从一行中创建一个支点列,但在php中遇到了一些挑战。当我在mysql consol中运行我的查询时,它工作得很好,并返回所需的值。但是当我在php中运行它时,它会返回一个mysql语法错误。我没有弄清楚真正的问题是什么。对于普通mysql和php分别有以下查询:

代码语言:javascript
运行
复制
SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'sum(case when Ref_Month = ''',
      Ref_Month,
      ''' then Total_Income end) AS ''',
      Ref_Month, ''''
    )
  ) INTO @sql 
FROM  mytable; 

SET @sql = CONCAT('SELECT Tone_Name, ', @sql, ' FROM mytable  WHERE Ref_Year in (2015) GROUP BY Tone_Name limit 10');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

用于PHP/代码点火器

代码语言:javascript
运行
复制
$query = $this->db->query("SET @sql = NULL;SELECT GROUP_CONCAT(DISTINCT CONCAT('sum(case when Ref_Month = ''', Ref_Month, ''' then Total_Income end) AS ''', Ref_Month, '''')) INTO @sql FROM  mytable; SET @sql = CONCAT('SELECT Tone_Name, ', @sql, ' FROM mytable  WHERE Ref_Year in (2015) GROUP BY Tone_Name limit 10'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;");

收到的错误消息是:

数据库错误发生了错误号: 1064 Erreur de syntaxe pr de 'SELECT GROUP_CONCAT(‘sum( Ref_Month =’,Ref_Month,‘la ligne 1)

谁来帮帮我。我还想知道如何在HTML/PHP中为前端显示这样的列和行。

谢谢。

EN

Stack Overflow用户

发布于 2016-06-29 14:08:52

在单个query()方法调用中运行多个查询。标准的MySQL数据库驱动程序有单独的方法在单个调用中执行多个sql查询,但CI使用的标准调用只允许每次调用执行单个sql命令。

在单独的CI查询调用中执行每个sql语句:

代码语言:javascript
运行
复制
$this->db->query("SET @sql = NULL");
...
$this->db->query("DEALLOCATE PREPARE stmt");

尽管您可以自己在php中完成所有的字符串连接,所以您根本不需要使用MySQL的准备语句。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38100802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档