我想查询我的SQL数据库以获得一个名称。 假设某个表包含列“names”,并有两个输入“john silva”和“dave silva”。 我想做一个查询,在该查询中,我获得所有名称为“silva”的输入,并以一种稍后可以将结果回显到HTML代码中的方式存储它们。 以下是我目前得到的结果(请记住,它不起作用,这就是我来这里问的原因:)):
$query = "SELECT ID, email, fullname, permission FROM users WHERE name LIKE '$data'";
$result = mysqli_query($conn, $query);
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_assoc($result)){
$userName = $row['fullname'];
$userHashedPermission = $row['permission'];
$ID = $row['ID'];
$userEmail = $row['email'];
}
if(password_verify('sim', $userHashedPermission)){
$userPermission='sim';
}else{
$userPermission='nao';
}
$callbackObj->name = $userName;
$callbackObj->permission = $userPermission;
$callbackObj->Id = $ID;
$callbackObj->email = $userEmail;
$callbackJson = json_encode($callbackObj);
echo $callbackJson;
}else{
echo "something went wrong"
}
您想要的功能是类似
。 更重要的是:学会使用参数。
$query = "SELECT ID, email, fullname, permission FROM users WHERE name LIKE CONCAT('%', ?)";
$stmt = mysqli_prepare($conn, $query);
mysqli_stmt_bind_param($stmt, "s", $data)
$result = mysqli_stmt_execute($conn, $query);
我认为您的示例代码和介绍完全解释了不同的东西。
从你的介绍中,我认为你是在试图以相同的姓氏获得所有的搜索结果,然后以另一种不同的方式保存它们。
如果那是你的观点,我们会有更好的办法来解决。
您需要在查询中做一些更改
$query = "SELECT ID, email, fullname, permission FROM users WHERE name LIKE '%".$data."%'";
根据评论
不要使用同时
循环将代码保留为
if(mysqli_num_rows($result) > 0){
$row = mysqli_fetch_assoc($result));
$callbackJson = json_encode($row);
echo $callbackJson;
}