2014-07-07 35 views
-3

下面的代碼工作不正常:笨其中=不符合的話

$query = $this->db->query("SELECT accountType FROM users WHERE id = $loggedID"); 

它的錯誤,如果$loggedID是像「賈斯汀」的話,但如果它像只201110523號,它的工作原理。我不知道什麼是錯的。用戶中id的數據類型是varchar。

public function account_type_student(){ 
    $loggedID = $this->input->post('id'); 

    $query = $this->db->query("SELECT accountType FROM users WHERE id = $loggedID"); 

    foreach ($query->result() as $row) 
    { 
     $query = $row->accountType; 
    } 

    if($query=="student"){  
     return true; 
    } 
    else{ 
     return false;     
     }     
    } 
+0

什麼樣的錯誤你看見了什麼? –

+2

SQL中的字符串必須正確轉義並用引號包裝。 – Havenard

回答

2

當它是像「賈斯汀」,那麼你必須要逃避你變一個字/字符串:

$query = $this->db->query("SELECT accountType FROM users WHERE id = '$loggedID' "); 

或者使用主動模式語法:

$this->db->select('accountType'); 
$this->db->where('id', $loggedID); 
$query = $this->db->get('users'); 
+0

它現在的作品..非常感謝你先生 – user3800149

+1

@ user3800149如果這有幫助,然後在這裏閱讀[**接受的答案:它是如何工作的?**](http://meta.stackoverflow.com/questions/5234/how -does接受-一個應答工作/ 5235#5235) –