2017-04-08 22 views
1

我有問題。在我的數據庫中,我有一列email。當我做SQL查詢我得到以下錯誤:在PHP中,如何在@中進行SQL查詢?

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '@gmail.com)' at line 1

這是我的代碼:

$sql = "SELECT ID_Dijak from dijak WHERE (Email=".$mejl.")"; 

如果我嘗試做查詢在PHP我的管理它的工作原理,如果我我的電子郵件之間把「」,但如何在PHP中做到這一點?謝謝。

+0

如果您使用適當的參數而不是傳送查詢字符串,那麼您將不會有無意的語法錯誤。 –

+0

'quotes'將有所幫助。將電子郵件值用引號引起來;) – Tushar

回答

1

我很抱歉,我犯了一個錯誤較早...我測試了這種方式,現在應該工作

$sql='SELECT ID_Dijak from dijak WHERE (Email = "' . $mejl . '")';

+0

不起作用,錯誤:您的SQL語法出錯;檢查對應於您的MariaDB服務器版本的手冊,以找到在'@gmail.com附近使用的正確語法。 '%')'第1行 – AMAGR

+0

變量$ mejl的值是多少? –

+0

電子郵件地址,[email protected] – AMAGR

0

取的數據類型爲varchar()電子郵件

+0

它被設置爲varchar。 – AMAGR

0

我會使用建議在PHP中準備語句,也是爲了防止注入攻擊。

$stmt = $dbc->prepare("SELECT ID_Dijak from dijak WHERE Email=?"); 
$stmt->bind_param("s", $mejl); 
$stmt->execute();