php - 群组联系人查询在 php 中抛出错误

标签 php mysql

我写了下面的查询,它在 Mysql 工作台中完美运行。但是当我从 php 运行它时,它会抛出错误。任何帮助,将不胜感激。

查询:

$sql=SET @sql = NULL;
SELECT GROUP_CONCAT(DISTINCT CONCAT('max(CASE WHEN date = "',date,'" THEN Market_cap end) AS "',date,'"'))
INTO @sql
FROM company_name
JOIN master on company_name.id=master.company_id
where date between '2018-01-01' and '2018-01-02';

SET @sql = CONCAT('SELECT name,symbol,',@sql,'FROM company_name join master on company_name.id=master.company_id where date between ''2018-01-01'' and ''2018-01-02''GROUP BY name,symbol');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

$res=mysqli_query($conn,$sql);
if (!$res) {
    echo("Error description: " . mysqli_error($conn));
}

如图所示抛出错误: error snapshot

我还必须使用上面的查询添加我的输出: output snapshot

最佳答案

试试这个

$sql="SET @sql = NULL;SELECT GROUP_CONCAT(DISTINCT CONCAT('max(CASE WHEN date = '".$date."' THEN Market_cap end) AS '".$date."'))INTO @sql FROM company_name join master on company_name.id=master.company_id where date between '2018-01-01' and '2018-01-02';SET @sql = CONCAT('SELECT name,symbol,',@sql,'FROM company_name join master on company_name.id=master.company_id where date between ''2018-01-01'' and ''2018-01-02''GROUP BY name,symbol');PREPARE stmt FROM @sql;EXECUTE stmt;DEALLOCATE PREPARE stmt";
$res= mysqli_query($conn,$sql);if (!$res) {echo("Error description: " . mysqli_error({$conn}));

Note: I was not sure why have you used "',date,'" in your query, so replaced it with '".$date."'. Make sure to use it as you needed.

关于php - 群组联系人查询在 php 中抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48656199/

相关文章:

php - 如何让javascript打开php文件?

php - 表单提交后保留所选选项

javascript - 如何使用 JavaScript 在客户端之间共享数据?

PHP Diff 部分日期时间

php - 使用查询生成器有什么好处

java - 在 MySQL 数据库中检索非英文字符插入值

PHP MySQL 搜索并按 html <input> 显示行

php - 获取两个数组并使用 mysql 查询循环它以获取结果

php - 如何解码 google 搜索 api 结果?

mysql - Django Admin 模型中是否可以嵌套内联表单?