【发布时间】:2020-06-19 17:30:55
【问题描述】:
正在研究这一点 PHP(刚刚开始并一直在查看文档)。我在另一个页面上有一个表单,一切都正确传递,查询正在返回结果(它旨在搜索并返回用户搜索的结果)。行数显示正确,因此结果正确,但我尝试过的几个选项未能显示结果。我只想显示返回行的结果。此外,如果有任何关于如何简化准备语句和绑定的建议,我还没有找到大量使用 LIKE 和 % 搜索多个列的示例,如下所示。谢谢
<?php
echo "<div class='result-count'>";
if(isset($_POST['keywords'])){
$keywords = $con->escape_string($_POST['keywords']);
#$keywords = preg_replace("#[^0-9a-z]#i","", $keywords);
$query = $con->prepare(" SELECT firstname, lastname, phone, email
FROM users
WHERE firstname LIKE CONCAT('%',?,'%')
OR lastname LIKE CONCAT('%',?,'%')
OR firstname LIKE CONCAT('%',?,'%')
OR phone LIKE CONCAT('%',?,'%')
OR email LIKE CONCAT('%',?,'%')
");
$query->bind_param("sssss", $keywords, $keywords, $keywords, $keywords, $keywords);
$query->execute();
$query->store_result();
$num_of_rows = $query->num_rows;
#WORKS ABOVE ^
$query->bind_result($id, $first_name, $last_name, $phone, $email, $address);
# echo $keywords ;
if($num_of_rows){
while($r = $query->fetch()){
echo $r->user_id;
}
}
else {
echo $num_of_rows . ' results found.';
}
}
echo "</div>";
?>
【问题讨论】: