Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Yii 2中执行查询时发生一般错误SQLSTATE[HY000]_Yii_Yii2 - Fatal编程技术网

在Yii 2中执行查询时发生一般错误SQLSTATE[HY000]

在Yii 2中执行查询时发生一般错误SQLSTATE[HY000],yii,yii2,Yii,Yii2,这是我的密码: $sql = " SET @run_balqty :=0; SELECT transaction_date, item_id, item_description, unit_id, quantity, ( @run_balqty := @run_balqty + quantity ) AS ba

这是我的密码:

$sql = "
        SET @run_balqty :=0;

        SELECT 
            transaction_date, 
            item_id, 
            item_description, 
            unit_id, 
            quantity,
            ( @run_balqty := @run_balqty + quantity ) AS balance_qty,
            reference_code
        FROM 
            `report_ledger` AS ledger
        WHERE
            item_id = 3147
        ORDER BY
            transaction_date ";

$query = Yii::$app->db->createCommand($sql)->queryAll();
当我试图运行此代码时。我得到这个错误

SQLSTATE[HY000]:一般错误


现在。。我的问题是:为什么我会出现这个错误?我如何让它运行?


我需要帮助。谢谢。

您正在尝试获取一个查询的结果,该查询包含一个命令(
SET@run\u balqty:=0
),该命令不可“获取”。您必须首先单独执行该命令,然后可以调用
queryal()
来执行
SELECT
query命令:

Yii::$app->db->createCommand("SET @run_balqty :=null;")->execute();

$sql = "
        SELECT 
            transaction_date, 
            item_id, 
            item_description, 
            unit_id, 
            quantity,
            ( @run_balqty := @run_balqty + quantity ) AS balance_qty,
            reference_code
        FROM 
            `report_ledger` AS ledger
        WHERE
            item_id = 3147
        ORDER BY
            transaction_date ";

$query = Yii::$app->db->createCommand($sql)->queryAll();
注意:小心使用
SET
语句,请阅读