📌  相关文章
📜  $q=mysqli_query($db,"SELECT * from books where name like'%$_POST[search]%'"); if (mysqli_num_rows($q)==0) (1)

📅  最后修改于: 2023-12-03 14:38:44.058000             🧑  作者: Mango

介绍

在这个主题下,我们将讨论一个基于PHP语言的MySQL查询操作。具体来说,我们将使用mysqli_query()函数来执行一个查询,查询所有书名中包含指定关键字的图书信息。如果查询结果为空,则会进行相应的错误处理。

代码片段

下面是相应的PHP代码片段:

$q = mysqli_query($db, "SELECT * from books where name like '%$_POST[search]%'");

if (mysqli_num_rows($q) == 0) {
    // 处理查询结果为空的情况
}
参数说明
  • $db:一个已连接到MySQL服务器的数据库链接对象。
  • $q:查询返回的结果集对象。
  • $_POST[search]:用户输入的搜索关键字。
  • mysqli_num_rows():获取结果集中的行数。
函数说明
mysqli_query()

mysqli_query()函数执行一个针对MySQL数据库的查询操作,并返回一个结果集对象。其调用方式为:

mysqli_query($link, $query);

其中,$link是一个到MySQL服务器的连接对象,可以通过mysqli_connect()等函数来创建;$query是一个字符串类型的SQL查询语句,其中可以包含占位符?,以便进行参数绑定。如果查询成功,mysqli_query()返回一个结果集对象,否则返回FALSE

mysqli_num_rows()

mysqli_num_rows()函数用于获取一个结果集对象中的行数。其调用方式为:

mysqli_num_rows($result);

其中,$result是一个结果集对象,通常是通过mysqli_query()等查询函数返回的。如果查询成功,则返回结果集中的行数;如果查询失败,则返回FALSE。注意,如果结果集的行数为0,mysqli_num_rows()返回的也是0,而不是FALSE

注意事项

由于上述代码中的SQL查询语句使用了用户通过POST方式提交的数据,存在SQL注入的风险。可以通过mysqli_real_escape_string()等函数进行数据过滤,或者使用参数绑定等技术来避免注入攻击。