CodeIgniter中的正确SQL查询给出错误

时间:2019-04-08 06:59:24

标签: php sql-server codeigniter codeigniter-3

当我从CodeIgniter运行查询时,出现此错误。

    A Database Error Occurred
    Error Number: 42000/263
    [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Must specify 
    table to select from.
    SELECT *
    Filename: D:/xampp/htdocs/4hifi/system/database/DB_driver.php

这令人困惑,因为直接在SQL Server中执行的完全相同的查询给出了正确的结果。

我正在使用CodeIgniter 3.1.9,我已经尝试注入$ username变量以不同的方式进行查询,所有操作都给出相同的错误。

代码如下:

$sql = "select date, g1.product_name, g2.order_amount, g1.price, g1.id, g1.order_id, g1.action from dbo.orders g1 inner join (select product_name, SUM( order_amount) as order_amount from dbo.orders where action=1 and confirmed!=1 group by product_name) g2 on g2.product_name = g1.product_name where g1.confirmed !=1 and g1.kontrahent = ? and action = 1";

        $db2->query($sql, $username);


        $result = $db2->get()->result_array();

        return $result;

2 个答案:

答案 0 :(得分:2)

$db2->query($sql, $username);行本身应返回所需的结果。对于原始查询,无需执行db->get()

答案 1 :(得分:1)

为什么要分两个步骤进行操作。你应该使用这样的东西

$sql = "select date, g1.product_name, g2.order_amount, g1.price, g1.id, g1.order_id, g1.action from dbo.orders g1 inner join (select product_name, SUM( order_amount) as order_amount from dbo.orders where action=1 and confirmed!=1 group by product_name) g2 on g2.product_name = g1.product_name where g1.confirmed !=1 and g1.kontrahent = ? and action = 1";

    $result = $sql->result_array();

    return $result;