我在一个网站上工作,根据用户的输入在html表上显示来自数据库的数据。 HTML文件通过jquery'post‘方法连接到php文件。
archive.php(它的一部分):
if(isset($_POST["id"])){
$id = $_POST["id"];
if(is_numeric($id) == TRUE){
$query="SELECT * FROM TestDataBase.usr WHERE idusr =" . $id;
$result=mysqli_query($conn, $query);
}else if(is_numeric($id) == FALSE){
$query="SELECT * FROM TestDataBase.usr WHERE INSTR(name," . $id .")";
$result=mysqli_query($conn, $query);
}
while($row = mysqli_fetch_array($result)){
$data["idusr"] = $row["idusr"];
$data["name"] = $row["name"];
$data["surname"] = $row["surname"];
}
echo json_encode($data);
}
当输入的数据不是整数时,我有一个接收数据的问题。 在文件的else if
部分,我使用的是INSTR(MySQL中的indexOf analog)。 每次我输入一个字符串,我就不断收到一个错误,所以我想我可能有一个语法错误,我无法定位。 如果你们中的一些人能帮我解决这个问题,那会很有帮助的。 谢啦!
看起来,您可能缺少字符串中的“
引号:
else if(is_numeric($id) == FALSE){
$query="SELECT * FROM TestDataBase.usr WHERE INSTR(name,'" . $id ."')";
$result=mysqli_query($conn, $query);
}
但是,请认真考虑休息一下,阅读有关SQL注入
的内容,连接字符串来生成查询是您所能做的最糟糕的事情