PHP开发中四种查询返回结果分析


Posted in PHP onJanuary 02, 2011

1.<!--使用mysql_result()来获取数据-->

<?php 
$connection=mysql_connect("localhost","root","password"); //连接并选择数据库服务器 
mysql_select_db("test",$connection); 
$query="insert into users(user_name)"; //在test数据库里插入一条数据 
$query.="values('tuxiaohui')"; 
$result=mysql_query($query); 
if(!$query) 
echo "insert data failed!<br>"; 
else{ 
$query="select * from users"; //查询数据 
$result=mysql_query($query,$connection); 
for($rows_count=0;$rows_count<7;$rows_count++) //用mysql_result获得数据并输出,mysql_result() 返回 MySQL 结果集中一个单元的内容。 
{ 
echo "用户ID:".mysql_result($result,$rows_count,"user_id")."<br>"; 
echo "用户名:".mysql_result($result,$rows_count,"user_name")."<br>"; 
} 
} 
?>

2.<!--使用mysql_fetch_row()来获取数据,以数组的形式返回查询结果-->
<?php 
$connection=mysql_connect("localhost","root","password"); //连接并选择数据库服务器 
mysql_select_db("test",$connection); 
$query="select * from users"; 
$result=mysql_query($query,$connection); 
while($row=mysql_fetch_row($result)) 
{ 
echo "用户ID:".$row[0]."<br>"; 
echo "用户名:".$row[1]."<br>"; 
} 
?>

3.<!--使用mysql_fetch_array()来获取数据,同mysql_fetch_row()类似,也是获取结果集中当前行数据,并在调用后自动滑向下一行-->
<?php 
$connection=mysql_connect("localhost","root","password"); //连接并选择数据库服务器 
mysql_select_db("test",$connection); 
$query="select * from users"; 
$result=mysql_query($query,$connection); 
while($row=mysql_fetch_array($result)) 
{ 
echo "用户ID:".$row[0]."<br>"; //也可以写做$row["user_id"] 
echo "用户名:".$row[1]."<br>"; //也可以写做$row["user_name"] 
} 
?>

4.<!--使用mysql_fetch_object()以对象的形式返回查询结果,也是用于查询数据结果集,返回当前行数据,并自动滑向下一行,不同的是它返回的是一个对象,这个对象的属性集合即为数据的属性集合,而属性上的值则为数据库中当前行该属性上的值-->
<?php 
$connection=mysql_connect("localhost","root","root"); //连接并选择数据库服务器 
mysql_select_db("test",$connection); 
$query="select * from users"; 
$result=mysql_query($query,$connection); 
while($row=mysql_fetch_object($result)) 
{ 
echo "用户ID:".$row->user_id."<br>"; //通过对象运算符->获得改行数据在其属性上的值。 
echo "用户名:".$row->user_name."<br>"; 
} 
?>

5.综合比较:
mysql_result():优点在于使用方便;其缺点在于功能少,一次调用只能获取结果数据集中的一行元素,对较大型的数据库效率较低;
mysql_fetch_row():优点在于执行效率在4种方法中最高;不足在于只能用数字作为属性索引来获得属性值,在使用时非常容易出现混淆;
mysql_fetch_array():执行效率同样高,同mysql_fetch_row()相差无几,并界可以用属性名方式直接获得属性值,因此在实际应用中最常用;
mysql_fetch_object():采用了面向对象思想,在设计思路上更为先进,如果习惯于用面向对象的思路来写程序,则会很自地选择它。其次,该方法的优点还体现在,对于结构较为负责的数据结果,在逻辑上更为清晰。
PHP 相关文章推荐
PHP 防注入函数(格式化数据)
Aug 08 PHP
PHP遍历某个目录下的所有文件和子文件夹的实现代码
Jun 28 PHP
php实现的验证码文件类实例
Jun 18 PHP
利用PHP将部分内容用星号替换
Apr 21 PHP
php开发工具有哪五款
Nov 09 PHP
Thinkphp3.2.3分页使用实例解析
Jul 28 PHP
php cookie 详解使用实例
Nov 03 PHP
如何通过View::first使用Laravel Blade的动态模板详解
Sep 21 PHP
php面向对象重点知识分享
Sep 27 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
Oct 11 PHP
php 使用expat方式解析xml文件操作示例
Nov 26 PHP
PHP实现考试倒计时功能代码
Apr 16 PHP
linux下删除7天前日志的代码(php+shell)
Jan 02 #PHP
PHP中=赋值操作符对不同数据类型的不同行为
Jan 02 #PHP
完美实现GIF动画缩略图的php代码
Jan 02 #PHP
php实现无限级分类实现代码(递归方法)
Jan 01 #PHP
php下尝试使用GraphicsMagick的缩略图功能
Jan 01 #PHP
PHP读取XML值的代码(推荐)
Jan 01 #PHP
PHP中simplexml_load_string函数使用说明
Jan 01 #PHP
You might like
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
PHP中substr函数字符串截取用法分析
2016/01/07 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
Prototype使用指南之ajax
2007/01/10 Javascript
强悍无比的WEB开发好助手FireBug(Firefox Plugin)
2007/01/16 Javascript
jquery 双色表格实现代码
2009/12/08 Javascript
javascript检查表单数据是否改变的方法
2013/07/30 Javascript
window.location.href = window.location.href 跳转无反应 a超链接onclick事件写法
2013/08/21 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
详解jQuery Mobile自定义标签
2016/01/06 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
2016/09/24 Javascript
svg动画之动态描边效果
2017/02/22 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
get  post jsonp三种数据交互形式实例详解
2017/08/25 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
2017/11/28 Javascript
Vue2.x中利用@font-size引入字体图标报错的解决方法
2018/09/28 Javascript
浅谈vue项目打包优化策略
2018/09/29 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
extjs4图表绘制之折线图实现方法分析
2020/03/06 Javascript
python线程、进程和协程详解
2016/07/19 Python
Windows 7下Python Web环境搭建图文教程
2018/03/20 Python
使用Python设计一个代码统计工具
2018/04/04 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
Python生成器常见问题及解决方案
2020/03/21 Python
Python调用C/C++的方法解析
2020/08/05 Python
利用 Canvas实现绘画一个未闭合的带进度条的圆环
2019/07/26 HTML / CSS
建筑工程技术应届生自荐信
2013/09/27 职场文书
医学院毕业生自荐信
2013/11/08 职场文书
婚礼司仪主持词
2014/03/14 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
2015年乡镇安全生产工作总结
2015/05/19 职场文书
我爱我班主题班会
2015/08/13 职场文书
2019自荐信范文集锦!
2019/07/03 职场文书