【发布时间】:2016-08-29 10:56:34
【问题描述】:
脚本从 URL 接收变量:
if(isset($_GET['string'])){
$string = $_GET['string'];
}
然后我在sql查询中使用这个变量:
$sql =
"SELECT
*
FROM
mytable
WHERE
mytable.column_a = '".$string."'";
问题是这个查询没有执行,我的变量包含特殊字符。示例:
/myscript.php?string=a>xxx<P>yy@"
尝试同时使用 htmlentities() 和 addslashes()。还尝试复制/粘贴变量的 echo - 工作正常。
我该如何解决这个问题?
【问题讨论】:
-
使用查询参数而不是将值填充到查询字符串中。
-
我也建议同样的事情,使用查询参数而不是将值放在您的 php 查询字符串中
-
如果你有特殊字符并且你从URL中获取字符串,你不需要使用解码吗? php.net/manual/en/function.htmlspecialchars-decode.php
-
要么使用可以为您解决问题的参数,要么编写几页代码来转义每个特殊字符。
标签: php html sql sql-server