2013-04-07 48 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. "%'";