《PHP与Mysql之四fetch函数》

PHP与Mysql之四fetch函数

一、mysql_fetch_row()----获取和显示数据

<?php
$link =mysql_connect('localhost','root','root');//连接数据库
   mysql_set_charset("utf8");//设置编码
   mysql_select_db("page");//选择数据库
$query=mysql_query("select * fromajax_page");//返回值是一个资源标识符,将sql语句传递给数据库之后
//将执行结果保存在内存中,返回指向该内存地址的标识符
print_r(mysql_fetch_row($query));//结果是第一条数据的索引数组
//因为select查询的结果是表中的所有记录,那么如何显示出所有的呢

<?php
$link =mysql_connect('localhost','root','root');//连接数据库
   mysql_set_charset("utf8");//设置编码
   mysql_select_db("page");//选择数据库
$query=mysql_query("select * fromajax_page");//返回值是一个资源标识符,将sql语句传递给数据库之后
//将执行结果保存在内存中,返回指向该内存地址的标识符
//print_r(mysql_fetch_row($query));//结果是第一条数据的索引数组
//因为select查询的结果是表中的所有记录,那么如何显示出所有的呢
/*while ($row=mysql_fetch_row($query)) {
   print_r($row);
}*/
//看完上边那个大家可能还不是很理解,那么我用下边的方法来方便大家理解
$row1=mysql_fetch_row($query);
print_r($row1);
$row2=mysql_fetch_row($query);
print_r($row2);
$row3=mysql_fetch_row($query);
print_r($row3);
$row4=mysql_fetch_row($query);
print_r($row4);
$row5=mysql_fetch_row($query);
print_r($row5);
$row6=mysql_fetch_row($query);
print_r($row6);
//就像是内部一个指针,每执行完一次mysql_fetch_row(),指针就会向下移动一个,那么就会输出下一个
//直到没有,返回false


mysql_fetch_row()获取数据,就是传递一个资源标识符(也就是查询结果的地址),然后它就会,每次返回一条记录,就像下边这样


二、mysql_fetch_array()----获取和显示数据

先看一下mysql_fetch_array()运行结果

<?php
$link =mysql_connect('localhost','root','root');//连接数据库
   mysql_set_charset("utf8");//设置编码
   mysql_select_db("page");//选择数据库
$query=mysql_query("select * fromajax_page");//返回值是一个资源标识符,将sql语句传递给数据库之后
print_r(mysql_fetch_array($query));


结果是一个关联和索引的复合数组(这个是在默认状态下的)

Mysql_fetch_array()是有第二个参数的,第二个参数有三种

1,MYSQL_ASSOC ---关联数组

2,MYSQL_NUM ---索引数组

2,MYSQL_BOTH ---默认

返回关联数组

<?php
$link =mysql_connect('localhost','root','root');//连接数据库
   mysql_set_charset("utf8");//设置编码
   mysql_select_db("page");//选择数据库
$query=mysql_query("select * fromajax_page");//返回值是一个资源标识符,将sql语句传递给数据库之后
print_r(mysql_fetch_array($query,MYSQL_ASSOC));


返回索引数组

<?php
$link =mysql_connect('localhost','root','root');//连接数据库
   mysql_set_charset("utf8");//设置编码
   mysql_select_db("page");//选择数据库
$query=mysql_query("select * fromajax_page");//返回值是一个资源标识符,将sql语句传递给数据库之后
print_r(mysql_fetch_array($query,MYSQL_NUM));


三、mysql_fetch_assoc()----获取和显示数据

细心的小伙伴就会发现这个好眼熟啊。没错,它其实就是和上边的那个mysql_fetch_array($query,MYSQL_ASSOC)等价

<?php
$link =mysql_connect('localhost','root','root');//连接数据库
   mysql_set_charset("utf8");//设置编码
   mysql_select_db("page");//选择数据库
$query=mysql_query("select * fromajax_page");//返回值是一个资源标识符,将sql语句传递给数据库之后
print_r(mysql_fetch_assoc($query));


它取数据和mysql_fetch_row()取数据的流程是一样的

它们也是可以通过while()循环来打印表中的所有记录

 

注意:这几个函数的参数不能是一个sql语句,比如mysql_fetch_row(‘select * from ajax_page’)这样是不对的,他们的参数要是一个资源标识符

四、mysql_fetch_object()----获取和显示数据

这个函数输出的结果是一个对象

<?php
$link =mysql_connect('localhost','root','root');//连接数据库
   mysql_set_charset("utf8");//设置编码
   mysql_select_db("page");//选择数据库
$query=mysql_query("select * fromajax_page");//返回值是一个资源标识符,将sql语句传递给数据库之后
$arr = mysql_fetch_object($query);
print_r($arr);

下面再说几个常用的PHP内置Mysql函数

(1)mysql_num_rows

Mysql_num_rows()输出的是结果集中行的数目

 

<?php
$link =mysql_connect('localhost','root','root');//连接数据库
   mysql_set_charset("utf8");//设置编码
   mysql_select_db("page");//选择数据库
$query=mysql_query("select * fromajax_page");//返回值是一个资源标识符,将sql语句传递给数据库之后
echomysql_num_rows($query);


此函数常用于判断表中是否有数据,如果没有我们就不执行输出表中的记录,这样可以避免资源的浪费

If($query&&mysql_num_rows($query)){

}else{

                  Echo “没有数据”;

}

(2)mysql_result()

Mysql_result()返回结果集中的一个字段的值,它有有三个参数,第一个参数是结果集的地址(也就是标识符),第二个参数是行号(注意行号从0开始),第三个参数是字段的名称,如果不写,默认取得是第一个字段(mysql_result($query,1,’username’)等价于mysql_result($query,1,1)第三个参数可以是字段名也可以是偏移量)

<?php
$link =mysql_connect('localhost','root','root');//连接数据库
    mysql_set_charset("utf8");//设置编码
    mysql_select_db("page");//选择数据库
$query=mysql_query("select count(*) from ajax_page");
echomysql_result($query, 0);


(3)mysql_affected_rows()受影响记录的行数

返回前一次受insert,update,delete影响的记录行数

<?php
$link =mysql_connect('localhost','root','root');//连接数据库
    mysql_set_charset("utf8");//设置编码
    mysql_select_db("page");//选择数据库
    if(mysql_query("update ajax_page setusername='abc' where id=5")){
        echo "修改成功,修改的数据条数为";
        echo mysql_affected_rows($link);//这里的参数是连接标识符,
    }else{
        echo "修改失败";
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值