这个MySQL查询语法有什么问题?

时间:2013-09-29 13:50:28

标签: php html mysql

$db = mysql_select_db("remote"); 

if(!$db) {
    die("Unable to select database");
} 

$query = "SET @cumulative_sum := 0; 
          SELECT timestamp, 
                 @cumulative_sum := @cumulative_sum + value AS cumulative_sum 
          FROM remote.historical 
          WHERE timestamp>= CURDATE()"; 

$result = mysql_query($qry);

当我在我的HeidiSQL中使用此查询时,它输出正常...在当天运行累积,但当我将此代码复制到php文件时,Web浏览器输出:

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   'SELECT timestamp,@ cum_sum:= @cumulative_sum + value AS附近   第1行的cumulative_sum F'

此代码有什么问题?

2 个答案:

答案 0 :(得分:2)

您可以替代在子查询中声明变量,而不是执行两个语句,例如。

SELECT  timestamp, 
        @cumulative_sum := @cumulative_sum + value AS cumulative_sum 
FROM    remote.historical, (SELECT @cumulative_sum := 0) b
WHERE timestamp>= CURDATE()

答案 1 :(得分:0)

出于安全原因,query()函数不允许在单个语句中进行多个查询,但您可以使用mysqli_multi_query()执行此操作。

以下链接可以帮助您:Multiple queries in single PHP query statement