当我从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;
答案 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;