phpsql-servercodeigniterprepared-statementcodeigniter-3

Parameterized SQL SERVER SELECT query with JOINed subquery in CodeIgniter is giving an error: "Must specify table to select from"


When I am running a query from CodeIgniter, I am getting this error.

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

Which is confusing cause exactly the same query executed directly in SQL-Server is giving correct results.

I am using CodeIgniter 3.1.9 , I already tried to inject $username variable to query in different ways, all are giving the same error.

Here is the code:

$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;

Solution

  • The $db2->query($sql, $username); line itself should return the required result.No need to do db->get() in case of raw queries.