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

Php 这个MySQL查询语法有什么问题?,php,html,mysql,Php,Html,Mysql,当我在HeidiSQL中使用此查询时,它的输出正常…在当天运行累积,但当我将此代码复制到php文件时,web浏览器输出: 您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 近“选择时间戳,@cumulative\u sum:=@cumulative\u sum+值为” 第1行的累积总和F' 这段代码有什么问题?您可以在子查询中声明变量,而不是执行两条语句,例如 $db = mysql_select_db("remote"); if(!$db) { d

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

您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 近“选择时间戳,@cumulative\u sum:=@cumulative\u sum+值为” 第1行的累积总和F'


这段代码有什么问题?

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

$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);
出于安全原因,query()函数不允许在一条语句中进行多个查询,但您可以使用
mysqli\u multi\u query()
进行此操作


以下链接将对您有所帮助:

非常感谢!!你拯救了这一天!
SELECT  timestamp, 
        @cumulative_sum := @cumulative_sum + value AS cumulative_sum 
FROM    remote.historical, (SELECT @cumulative_sum := 0) b
WHERE timestamp>= CURDATE()