0
$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 服务器版本相对应的手册,以在第 1 行的 'SELECT timestamp, @cumulative_sum := @cumulative_sum + value AScumulative_sum F' 附近使用正确的语法

这段代码有什么问题?

4

2 回答 2

2

除了执行两条语句之外,您还可以在子查询中声明变量,例如。

SELECT  timestamp, 
        @cumulative_sum := @cumulative_sum + value AS cumulative_sum 
FROM    remote.historical, (SELECT @cumulative_sum := 0) b
WHERE timestamp>= CURDATE()
于 2013-09-29T13:52:29.430 回答
0

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

以下链接将为您提供帮助:单个 PHP 查询语句中的多个查询

于 2013-09-29T14:03:35.097 回答