我有一个 PHP 脚本,它使用 mysqli 使用非常简单的搜索语句。这是声明:
SELECT * FROM JobTracker WHERE JobName LIKE'%$jobName%'
现在我想防止 SQL 注入(inject),但我不知道语法。
我尝试过 LIKE '%?%'
和 LIKE '%' 。 ? 。 '%'
和 LIKE '%' + ? +“%”
但没有任何效果。这个可以防止注入(inject)的 SQL 语句的正确语法是什么?
最佳答案
你有两个选择:
特殊字符
%
和_
应允许作为输入中的通配符:... LIKE CONCAT('%', ?, '%')
不应允许使用通配符:
... LIKE ? $jobName = '%'.str_replace(array("_","%"),array("\\_","\\%"),$jobName).'%';
关于PHP:使用 LIKE 选择器时防止 SQL 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24867280/