簡體   English   中英

錯誤號:1054未知列Codeigniter

[英]Error Number: 1054 Unknow Column Codeigniter

我有一個代碼,可以從鏈接在一起的表中檢索數據。 這是代碼

public function getdatamentor($key)
{
    $this->db->select('iduser');
    $this->db->where('idtraining', $key, false);
    $hasil= $this->db->get('ttraining');
    $this->getNama($hasil->result());
}

public function getNama($key)
{
    $this->db->select('nama');
    $this->db->where('iduser', $key, false);
    $hasil = $this->db->get('tmember');
    return $hasil;
}

但是它返回錯誤

Error Number: 1054

Unknown column 'TWO00000' in 'where clause'

SELECT `iduser` FROM `ttraining` WHERE idtraining = TWO00000

Filename: C:/xampp/htdocs/gofastforex/system/database/DB_driver.php

Line Number: 691

謝謝你的幫助

因為在where函數的第三個參數中使用set false

$this->db->where('idtraining', $key, false);

如果設置為false並且value為字符串,則在其中不保護value(Lib無法自動添加單引號)。 不受保護的是,值將被視為字段名稱。 因此,您應該將其刪除或設置為true

$this->db->where('idtraining', $key);

轉換為SQL:

SELECT `iduser` FROM `ttraining` WHERE idtraining = TWO00000 # Before remove
SELECT `iduser` FROM `ttraining` WHERE idtraining = 'TWO00000' # After remove
                                                    ^        ^
                                       Lib added single quote to protected.

在第三PARAM where的方法是逃生

$this->db->where('idtraining', $key, true); //

最好在這里閱讀

https://www.codeigniter.com/userguide3/database/query_builder.html?highlight=where%20cla#CI_DB_query_builder::where

在下面嘗試

public function getNama($key)
{
    $this->db->select('nama');
    $this->db->where('iduser',"$key");
    $hasil = $this->db->get('tmember');
    return $hasil;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM