我正在使用jQueryUI自动完成功能从数据库中读取数据。自动完成调用PHP脚本,下一步是:
$text = mysqli_real_escape_string($_GET['term']);
$query = "SELECT * FROM student WHERE name LIKE '%$text%'";
$result = mysqli_query($con,$query);
$exe = '[';
$first = true;
while($row = mysqli_fetch_assoc($result))
{
if(!$first)
{
$exe .= ',';
}
else
{
$first = false;
}
$exe .= '{"value":"'.$row['fname'].', '.$row['lname'].'. "}';
}
$exe .= ']';
echo $exe;
}
据我所知,PHP代码将匹配数据保存到名为exe的JSON对象数组中,但我不明白的是:
$text = mysqli_real_escape_string($_GET['term']);
这是什么?我的输入字段叫做'name',我甚至不使用方法$ _GET,而是$ _POST。 'term'是自动完成功能默认添加的东西吗?提前谢谢。
答案 0 :(得分:2)
是的,术语由自动完成插件自动传递。
答案 1 :(得分:0)
PHP
$ _ GET ['term']
从get字符串中检索term =的值。由于这是由用户/用户的浏览器提供的,因此它是不可信的值。为了保护您免受一些常见的SQL注入攻击,它通过mysqli_real_escape_string函数进行过滤,以转义任何sql-active字符。