对用户输入传入的字符(任意)进行数据库查询时到底该用哪个函数先处理啊?

时间:2022-05-27 08:36:59
比如我要用接收到的 $_GET["search"] 这个变量去查询数据库,或者也有可能还要把这个$_GET["search"]字符写入数据库记录,
在这之前应该用php的什么函数去处理它这个$_GET["search"]随机任意字符串啊,查询时即不对数据库安全造成影响,也不会对用户搜索体验造成影响,也就是无论用户搜索什么都把它看成是普通字符串去搜索或写入不要错误当成了mysql的命令部分了!
htmlspecialchars(); ?还是  addslashes(); ?

 

$mesage = $_GET["search"];
"WHERE `message`='{$mesage}'"
 我现在直接这样写听说有安全问题不行吧

5 个解决方案

#1


addslashes()

#2


或者使用pdo的prepare預處理。

#3


引用 1 楼 xuzuning 的回复:
addslashes()
 如果 $pass = '%1%'; "WHERE `pass`='{$pass}'";  这时的%符号是当做普通字符处理了吧还是当成通配符?

#4


通配符

#5


如果 $pass = '%1%'; "WHERE `pass`='{$pass}'";  这时的%符号是当做普通字符处理了吧还是当成通配符?

通配符

#1


addslashes()

#2


或者使用pdo的prepare預處理。

#3


引用 1 楼 xuzuning 的回复:
addslashes()
 如果 $pass = '%1%'; "WHERE `pass`='{$pass}'";  这时的%符号是当做普通字符处理了吧还是当成通配符?

#4


通配符

#5


如果 $pass = '%1%'; "WHERE `pass`='{$pass}'";  这时的%符号是当做普通字符处理了吧还是当成通配符?

通配符