2013-06-12 43 views
0

我的SQL語句不工作...SQL語句不是在你的SQL語法時,選擇1064錯誤

這裏是我的變量:

$email="[email protected]"; 

這些陳述不工作:

$sql = "SELECT * FROM table WHERE email = $email"; 
$sql = 'SELECT * FROM table WHERE email = ' . $email; 

1064您的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法在1號線

使用近「@ test.com」但是,如果我用一個字符串,而不是變量,它的工作原理手冊:

$sql = "SELECT * FROM table WHERE email = '[email protected]'"; 

我的陳述有什麼問題? 謝謝!

+0

你應該谷歌SQL注入攻擊和準備陳述 –

+0

@Steve,你爲此低估了它? – Devolus

+0

@Devolus不,我不是 –

回答

1

在MySQL

$sql = "SELECT * FROM table WHERE email = $email"; 
$sql = 'SELECT * FROM table WHERE email = ' . $email; 

請逃脫字符串這應該工作

$sql = "SELECT * FROM table WHERE email = '$email'"; 
+0

謝謝,它現在工作! – july13

-1
$this->db->where('email', $this->input->post('email')); 
    $query =$this->db->get($this->user); 

    //$sql = "SELECT * FROM user WHERE email = '$email'"; 
if($query->num_rows == 1) 
{ 
    return true; 
} 
else 
{ 
    return false; 
} 

} }

0

表是一個關鍵字,那麼可以這樣寫

$sql = "SELECT * FROM `table` WHERE email='$email'";