Codeigniter - 使用 json 将单个查询结果传递给控制器​​ - 如果存在

Posted

技术标签:

【中文标题】Codeigniter - 使用 json 将单个查询结果传递给控制器​​ - 如果存在【英文标题】:Codeigniter - pass single query result to controller with json - if exists 【发布时间】:2013-07-01 09:04:18 【问题描述】:

想要使用 json 将单个 codeigniter 查询结果传递给我的控制器。

我的模型函数是:

 function get_linked_loads_qty($q)

$sql = $this->db->query("
IF EXISTS(
select qtylinkedorders
from Linked_Order_Summary
join Linked_Order_lines
on Linked_Order_Summary.linkedorderid= Linked_Order_lines.linked_order_id
where load_number='$q'
)
begin

select qtylinkedorders
from Linked_Order_Summary
join Linked_Order_lines
on Linked_Order_Summary.linkedorderid= Linked_Order_lines.linked_order_id
where load_number='$q'

END
ELSE BEGIN

select  1 as qtylinkedorders
from customer_Order_lines
where CustomerOrderID='$q'
group by CustomerOrderID

END
         ");

    $query = $this->db->get();
    if($query->num_rows > 0)
        foreach ($query->result_array() as $row)
            $row_set[] = htmlentities(stripslashes($row[qtylinkedorders])); //build an array
       
       return $row_set;
    
  

我的控制器是:

function get_linked_loads_qty()

    $this->load->model('Sales_model');
    if (isset($_POST['data']))
        $q = strtolower($_POST['data']);
        $data = $this->Sales_model->get_linked_loads_qty($q);
        $this->output->set_content_type('application/json')->set_output(json_encode($data));
    


该 sql 在 mssql 中 100% 工作。代码点火器错误是: <p>Error Number: 42000</p><p>[Microsoft][SQL Server Native Client 11.0][SQL Server]Must specify table to select from.</p><p>SELECT *</p>

如前所述,查询在 mssql 中完美执行。

欢迎任何帮助。谢谢。

【问题讨论】:

【参考方案1】:

我相信 $this->db->get() 是不需要的,这是导致错误的原因。 $this->db->query("blah...") 将运行查询并返回结果。见CodeIgniter DB Query Docs

【讨论】:

以上是关于Codeigniter - 使用 json 将单个查询结果传递给控制器​​ - 如果存在的主要内容,如果未能解决你的问题,请参考以下文章

将codeigniter查询转换为json?

Codeigniter - 如何将 JSON 作为参数传递给视图 [重复]

php/mysql 试图在 codeigniter 中输出单个结果?

AngularJS |如何将 Json 的数据发送到 Codeigniter 中的数据库

使用连接(codeigniter)从单个字段中检索和打印逗号分隔符后的值

使用 codeigniter 活动记录获取单个字段输出的值