2013-04-07 51 views
4

如果我執行我的PHP代碼:MySQL查詢可變通配符

$serName = $_GET['username']; 
// Code for sanitation here 
// [...] 
$sql = "SELECT NAME FROM PLAYERS WHERE NAME LIKE '%$serName%'"; 

我得到除錯誤,我怎麼在查詢中使用的變量,兩側通配符?

+1

你必須將它放在你的查詢之前淨化你的GET字符串.. – Svetoslav 2013-04-07 16:12:59

+0

@Svetlio是的,我已經sanatized它,我剛纔就這樣離開,這樣人們就不會對我的功能感到困惑。 – OPatel 2013-04-07 16:15:10

回答

3

正確的查詢

SELECT NAME FROM PLAYERS WHERE NAME LIKE '%{$serName}%' 

而且你應該使用prepared statements

+0

爲什麼他不喜歡[PDO](http://php.net/manual/en/pdo.prepare.php)? (; – 2013-04-07 16:22:25

+0

他當然可以:)我建議準備好的聲明,而不是反對PDO。 – Ejaz 2013-04-07 16:25:04

0
$sql = "SELECT NAME FROM PLAYERS WHERE NAME LIKE '%" .$serName. "%'";