打电话给'id & # 39;mysql数据库的varchar格式,但未知列'在'where子句


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

我试图通过'id'格式id示例id = GE- dis -001调用数据与Codeigniter的JOIN表,在'where子句'中'未知列' 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();
}