如果搜不到我怎么return呢?
If search not found how do i return it?
我不知道这样问是不是很蠢。但我无法弄清楚。我有以下查询:
include 'db.php';
if(isset($_POST['search']) && !empty($_POST['searchQuery'])){
$name = $_POST['searchQuery'];
//-query the database table
$sql="SELECT * FROM users WHERE name LIKE '%" . $name . "%'";
$result=mysqli_query($db, $sql);
}
这从表单输入中找到匹配项,所以稍后我使用 mysqli_fetch_array()
并在循环后显示结果。但是我无法弄清楚如果用户输入的字符串在table中不匹配,我如何向他们展示他正在搜索的内容找不到?
确保使用 mysqli_real_escape_string
清理变量 $name
。
要检查是否未找到任何结果,您要使用 mysqli_num_rows
并检查它是否为零。
例子
include 'db.php';
if(isset($_POST['search']) && !empty($_POST['searchQuery'])){
$name = mysqli_real_escape_string($db,$_POST['searchQuery']);
$sql="SELECT * FROM users WHERE name LIKE '%{$name}%'";
$result=mysqli_query($db, $sql);
if($result && mysqli_num_rows($result)) {
// Success and Results
}else{
// Failed OR No Results
}
}
为什么使用mysqli_real_escape_string
使用 mysql_real_escape_string
很重要,否则任何用户都可以执行 SQL 注入。 SQL 注入是指用户可以修改 SQL 查询以泄漏或删除信息。
我不知道这样问是不是很蠢。但我无法弄清楚。我有以下查询:
include 'db.php';
if(isset($_POST['search']) && !empty($_POST['searchQuery'])){
$name = $_POST['searchQuery'];
//-query the database table
$sql="SELECT * FROM users WHERE name LIKE '%" . $name . "%'";
$result=mysqli_query($db, $sql);
}
这从表单输入中找到匹配项,所以稍后我使用 mysqli_fetch_array()
并在循环后显示结果。但是我无法弄清楚如果用户输入的字符串在table中不匹配,我如何向他们展示他正在搜索的内容找不到?
确保使用 mysqli_real_escape_string
清理变量 $name
。
要检查是否未找到任何结果,您要使用 mysqli_num_rows
并检查它是否为零。
例子
include 'db.php';
if(isset($_POST['search']) && !empty($_POST['searchQuery'])){
$name = mysqli_real_escape_string($db,$_POST['searchQuery']);
$sql="SELECT * FROM users WHERE name LIKE '%{$name}%'";
$result=mysqli_query($db, $sql);
if($result && mysqli_num_rows($result)) {
// Success and Results
}else{
// Failed OR No Results
}
}
为什么使用mysqli_real_escape_string
使用 mysql_real_escape_string
很重要,否则任何用户都可以执行 SQL 注入。 SQL 注入是指用户可以修改 SQL 查询以泄漏或删除信息。