使用 varchar 格式调用 mysql 数据库的“ id ”,但 'where clause' 中的未知列 'GE'

call the ' id ' of the mysql database with varchar format but Unknown column 'GE' in 'where clause'

我尝试通过 'id' 格式 id 示例 id = GE-DIS-001 调用数据以加入 table 与 Codeigniter,[=22 中的“未知列‘GE’”的结果=]怎么了??

控制器:

    public function detail(){

    $id = $this->uri->segment(4);
    $detail = $this->mcrud->get_detail($id); 

    $data = array(
                'detail'=>$detail,
                'lihat' =>$this->mcrud->lihat_komentar($id),
                'isi'       =>'instrument/read_views');
    $this->load->view('layout/wrapper', $data);


   }    

型号:

    public function get_detail($id){

    $sql = "SELECT * FROM tbdetail 
            JOIN tbkalibrasi ON tbkalibrasi.id = tbdetail.id
            JOIN tbsupplier ON tbsupplier.namasupplier = tbdetail.namasupplier

            WHERE tbdetail.id = {$id}
            ";
    return $this->db->query($sql)->result_array();
    }   

似乎 $id 变量包含带空格的字符串,因此您收到此错误。改成

public function get_detail($id){

    $sql = "SELECT * FROM tbdetail 
            JOIN tbkalibrasi ON tbkalibrasi.id = tbdetail.id
            JOIN tbsupplier ON tbsupplier.namasupplier = tbdetail.namasupplier

            WHERE tbdetail.id = '$id'
            ";
    return $this->db->query($sql)->result_array();
    } 

您的 id 变量是否缺少单引号?

public function get_detail($id){

$sql = "SELECT * FROM tbdetail 
        JOIN tbkalibrasi ON tbkalibrasi.id = tbdetail.id
        JOIN tbsupplier ON tbsupplier.namasupplier = tbdetail.namasupplier

        WHERE tbdetail.id = '{$id}'
        ";
return $this->db->query($sql)->result_array();
}