如何避免SQL注入在SQL查询与类似%操作符.只有PHP mysql


How to avoid SQL Injection in SQL query with Like % Operator. only php mysql

如何避免SQL注入在SQL查询像操作符只有PHP和Mysql?这可以用字符串函数完成吗?

或者有人能告诉我应该怎么做来防止%操作符的攻击吗?

您可以使用mysql_real_escape_string转义字符串,并在后面添加%通配符。

运行查询时使用mysql_real_escape_string(),如下所示:

mysql_query("SELECT field FROM table WHERE field2 LIKE '%".mysql_real_escape_string($yourVar)."%'");

您可以做一些事情来确保它的安全性。首先,你必须弄清楚你要搜索的数据类型:数字,字符串等。

我建议使用PHP的PDO库,根据你应该收到的数据类型准备查询和绑定值。
下面是一个示例,其中接收到的数据应该是字符串。注意PARAM_STR

...
$value = "apple";
$sth = $dbh->prepare('SELECT name FROM fruit WHERE type LIKE :something');
$sth->bindParam(':something', '%'.$something.'%', PDO::PARAM_STR);
$sth->execute();
...