php如何判断SQL语句的查询结果是否为空?
PHP与mysql这对黄金搭档配合的相当默契,但偶尔也会遇到一些小需求不知道该怎么做,例如今天要谈到的:如何判断sql语句查询的结果集是否为空!
我们以查询学生信息为例,来看看究竟如何实现我们的需求。
首先,来看看我们的数据表“student”中所存储的数据是个什么样子;
id stuname gender age grade class
1 张三 男 16 17 3
2 李四 男 15 18 2
3 王美丽 女 16 17 5
我们来看看sql查询功能代码,我们要将年龄为16岁的学生信息都查出来;
<?php
$sql = "select * from `student` where `age`='16';";
$rows = mysql_query($rs);
?>
<ul>
<?php
while($rows=mysql_fetch_array($rs)){
?>
<li>姓名:<?php echo $rows['stuname'];?></li>
<li>性别:<?php echo $rows['gender'];?></li>
<li>年龄:<?php echo $rows['age'];?></li>
<li>年级:<?php echo $rows['grade'];?></li>
<li>班级:<?php echo $rows['class'];?></li>
<?php
}
?>
</ul>
以上便是查询功能,当结果集不为空时,一切正常,当数据集为空时,会得到一个空白的ul标签,
作为使用者却不知道为什么没有得到数据,此时我们需要给用户一个提示信息,那么我们就需要判断这个结果集是否为空!
如何才能判断结果集是否为空呢,有下面两个方法:
<?php
//方法一 获取select结果集的行数
$rows=mysql_query("select * from `student` where `age`='16';");
if (mysql_num_rows($rows) < 1){
echo '查询无数据!';
} //方法二 返回上一次操作受影响的行数
$rows=mysql_query("select * from `student` where `age`='16';");
if(!mysql_affected_rows()){
echo '查询无数据!';
}
?>
知道了方法,那么把方法套到我们的代码中看看效果吧
//方法一
<?php
$sql = "select * from `student` where `age`='16';";
$rows = mysql_query($rs);
?>
<ul>
<?php
if (mysql_num_rows($rs) < 1){
echo '查询无数据!';
}else{
while($rows=mysql_fetch_array($rs)){
?>
<li>姓名:<?php echo $rows['stuname'];?></li>
<li>性别:<?php echo $rows['gender'];?></li>
<li>年龄:<?php echo $rows['age'];?></li>
<li>年级:<?php echo $rows['grade'];?></li>
<li>班级:<?php echo $rows['class'];?></li>
<?php
}
}
?>
</ul> //方法二
<?php
$sql = "select * from `student` where `age`='16';";
$rows = mysql_query($rs);
?>
<ul>
<?php
if(mysql_affected_rows()){
while ($rows=mysql_fetch_assoc($rs)){
?>
<li>姓名:<?php echo $rows['stuname'];?></li>
<li>性别:<?php echo $rows['gender'];?></li>
<li>年龄:<?php echo $rows['age'];?></li>
<li>年级:<?php echo $rows['grade'];?></li>
<li>班级:<?php echo $rows['class'];?></li>
<?php
}
}else {
echo "查无数据!";
}
?>
</ul>
OK,大功告成,现在查不到数据的时候就会有提示了哦!
php如何判断SQL语句的查询结果是否为空?的更多相关文章
- mysql 常用 sql 语句 - 快速查询
Mysql 常用 sql 语句 - 快速查询 1.mysql 基础 1.1 mysql 交互 1.1.1 mysql 连接 mysql.exe -hPup ...
- SQL语句之查询(SELECT)
目录 SQL语句之查询(SELECT) 简单查询 限定查询 模糊查询 排序查询 多表查询 SQL语句之查询(SELECT) SQL是用于访问和处理数据库的标准计算机语言: 中文:结构化查询语言:英文全 ...
- SQL语句在查询分析器中可以执行,代码中不能执行
问题:SQL语句在查询分析器中可以执行,代码中不能执行 解答:sql中包含数据库的关键字,将关键字用[]括起来,可以解决. 后记:建数据库的时候尽量避免使用关键字. 例子: sql.Format(&q ...
- 如何在 Linux 上用 SQL 语句来查询 Apache 日志
Linux 有一个显著的特点,在正常情况下,你可以通过日志分析系统日志来了解你的系统中发生了什么,或正在发生什么.的确,系统日志是系统管理员在解决系统和应用问题时最需要的第一手资源.我们将在这篇文章中 ...
- 在Hibernate中使用HibernateTemplate来进行包含sql语句的查询
/** * 使用sql语句进行查询操作 * @param sql * @return */ public List queryWithSql(final Stri ...
- Sql语句之查询所有学生所有科目分数及总分
昨天练Sql语句,数据库建了四个表分别是,学生表,课程表,成绩表以及教师表(教师表不在讨论范围),突然想到以前高中时代老师手上的那张成绩表,然后我就寻思着能不能用Sql语句把表打印出来,以下是我的思考 ...
- Python与开源GIS:在OGR中使用SQL语句进行查询
摘要: 属性选择与空间选择都可以看作是OGR内置的选择功能,这两种功能可以解决大部分实际中的问题.但是也有这种时候,就是进行查询时的条件比较复杂.针对这种情况,OGR也提供了更加灵活的解决方案:支持使 ...
- SQL 语句在查询分析器执行很快,程序 Dapper 参数化查询就很慢(parameter-sniffing)
这个问题困扰我好长时间了,使用SQLSERVER 事务探查器找到执行超时的SQL语句,参数查询都是通过执行exe sp_executesql 的存储过程调用,因为它能够分析并缓存查询计划,从而优化查询 ...
- [Beego模型] 四、使用SQL语句进行查询
[Beego模型] 一.ORM 使用方法 [Beego模型] 二.CRUD 操作 [Beego模型] 三.高级查询 [Beego模型] 四.使用SQL语句进行查询 [Beego模型] 五.构造查询 [ ...
随机推荐
- Swoole源代码学习记录(十二)——ReactorThread模块
Swoole版本号:1.7.5-stable Github地址:https://github.com/LinkedDestiny/swoole-src-analysis 这一章将分析Swoole的Re ...
- springboot配置文件加载位置
springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件 –file:./config/ – ...
- Golang Template source code analysis(Parse)
This blog was written at go 1.3.1 version. We know that we use template thought by followed way: fun ...
- jxl 导入导出Excel(有模板)
1.导入 @Override public String importBusinessScope(File file, String unit_id) throws Exception { Workb ...
- Ext.tree.Panel实现单选,多选
Extjs var productCategoryTreeLookUpFn = function(callback) { var productCategoryLookUpWindow; var pr ...
- com关于引用计数
实现引用计数并不难,但在什么层次上进行引用计数呢? 依照com规范,一个com组件能够实现多个com对象.而且每一个com对象又能够支持多个com接口,这样的层次结构为我们实现引用计数提供了多种选择方 ...
- list.subList
import java.util.ArrayList;import java.util.List; public class Test2 { public static void main(St ...
- [整理] C#调用SQLDMO.DLL时间数据库备份 / 还原。 (香神无涯) // C#实现SQLSERVER2000数据库备份还原的两种方法 (带进度条)
/// <summary>/// 通过调用MSSQL的SQLDMO.DLL文件来实现备份数据库/// 1.首先在在项目中引用SQLDMO.DLL文件./// 2.在引用中的SQLDMO.D ...
- hdu 6112 今夕何夕(模拟)
今夕何夕 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- 想要学好C/C++,我到底要看多少书才能成为一个合格的C/C++工程师?
如何学好C语言 这可能是很多朋友的问题,我以前也有这样的感觉,编程编到一定的时候,发现能力到了瓶颈,既不深,也不扎实,半吊子.比如:你长期地使用Java和.NET ,这些有虚拟机的语言对于开发便利是便 ...