首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php查询中的MYSQL变量

php查询中的MYSQL变量
EN

Stack Overflow用户
提问于 2013-01-24 02:35:50
回答 3查看 19.2K关注 0票数 9

这个问题的解决方案可能是我的一个简单的忽略。

我正在尝试运行一个在PHP中存储为字符串的MYSQL查询。使用Navicat等DBM工具可以很好地运行查询,但在我的PHP开发环境中会返回false。我是不是漏掉了什么?

代码语言:javascript
复制
SET @running_sum = 0;

SELECT
    TID,
    SumTotal,
    T.`Freight`,
    T.`Insurance`,
    T.`Discount`,
    CONCAT(
        '$',
        FORMAT(
            @running_sum :=@running_sum + SumTotal + T.`Freight` + T.`Insurance` - T.`Discount`,
            2
        )
    ) AS 'Running Total'
FROM
    (
        SELECT
            TID,
            SUM(Quantity * UnitNetValue) AS SumTotal,
            T.`Freight`,
            T.`Insurance`,
            T.`Discount`
        FROM
            Transactions T
        JOIN `Transactions_Products` P ON T.TransactionID = P.TID
        WHERE
            (
                T.TemplateName = ''
                OR T.TemplateName IS NULL
            )
        AND T. STATUS = 1
        GROUP BY
            TransactionID

    ) AS T;

我像这样执行查询;

代码语言:javascript
复制
$result = mysql_query($this->query);

$this->query是包含上述查询的字符串,正如上面显示给您的那样。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-24 02:51:02

问题是mysql_query()不支持多个查询。您的SET @running_sum = 0;被认为是一个单独的查询,因此您必须首先执行该查询:

代码语言:javascript
复制
$result1 = mysql_query("SET @running_sum = 0;");

$result2 = mysql_query($this->query); // <-- without the SET ... query

Manual

mysql_query()发送唯一查询(不支持多个查询)

附注:mysql_*库已弃用,建议升级到最新的MySQL库,如PDOMySQLi

票数 20
EN

Stack Overflow用户

发布于 2015-11-23 17:24:04

也可以使用multi_query方法代替MySQLi的query

代码语言:javascript
复制
$query = "SET @running_sum = 0; SELECT ...";
$db_link->multi_query($query);
票数 4
EN

Stack Overflow用户

发布于 2013-01-24 02:47:28

像这样放入变量。我想它应该能行得通。

代码语言:javascript
复制
 mysql_query("SELECT @i:=0");
 mysql_query("UPDATE table_name SET id = @i:=@i+1");
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14486878

复制
相关文章

相似问题

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