select在应用程序中给我一个空数组,但在数据库中给行(Codeigner)


select in application give me an empty array but in database give rows(Codeigniter)

我的型号:

public function getSolServicoById($id){
    $select = 'SELECT * FROM solicitacao_servico WHERE id_solicitacao = "$id" LIMIT 1';
    $query = $this->db->query($select);
    return $query->result();
}

我的控制器:

public function editaSolicitacao($id){
        $this->load->model('Pedido_Model','pedido');
        echo $id;
        $data = $this->pedido->getSolServicoById($id);
        print_r($data);
    }

当我在数据库中选择它时,我会收到行,但当我在应用程序中选择时,我得到的是空数组,我不知道为什么会发生这种情况?!

试试这个:

$select = "SELECT * FROM solicitacao_servico WHERE id_solicitacao = '{$id}' LIMIT 1";

还期待使用准备好的语句来减少sql注入漏洞。

更好的方法是:

$this->db
     ->select('*')
     ->from('solicitacao_servico')
     ->where('id_solicitacao',$id)
     ->limit(1)
     ->get();

这样做不会将代码约束到特定的数据库类型(MySQL、MSSQL等),因为它将通过内置的活动记录功能为应用程序创建正确的语法。