首页 > 编程知识 正文

php处理mysql的结果集,mysql 结果集

时间:2023-12-28 21:11:02 阅读:329122 作者:CROU

本文目录一览:

php mysql 获取结果集的问题??

首先看传入的参数:第一个是resource类型的结果集,是mysql_query($sql)的返回值,第二个则是传入SQL语句。参数类型不一样。

再看函数体:mysql_fetch_assoc($result)接受的传入类型是resource类型,他有两种返回值的可能,一种是如果结果集存在行记录,则返回一行记录,是关联数组类型的。如果没有行记录,即查询结果为空,则返回布尔类型的false。

看第一种方法,while()循环是当判断条件为true时执行,就是如果mysql_fetch_assoc($result)没有返回false,即有数据库查询后有行记录,就会把在循环体中把返回值$rs添加到数组$row中,$row将会是二维数组,键是int类型的0,1,2.。。。

而你说的第二个getOne()将只能返回一行查询记录,如果没有记录,将会返回false。

你可以用print_r()打印出getOne和getAll()的结果。

比如数据库存在是id=1,name=aa ;id=2,name=bb两条记录,则getAll()打印出的是

Array([0]=Array('id'=1,'name'='aa'),[1]=Array('id'=2,'name'='bb'))

getOne打印出的是Array('id'=1,'name'='aa')[我初学PHP,不排除分析错误]

程序员 PHP PHP和MySQL查询的结果集

?php

$conn=mysql_connect("localhost","root","");

$select=mysql_select_db("books",$conn);

$query="insert into computers(name,price,publish_data) ";

$query.="values('JSP',28.00,'2008-11-1')";

$query="select * from computers";

$result=mysql_query($query);

//以下是使用mysql_result()函数来获取到查询结果

$num=mysql_num_rows($result);

for($rows_count=0;$rows_count$num;$rows_count++){

echo "书名:".mysql_result($result,$rows_count,"name");

echo "价格:".mysql_result($result,$rows_count,"price");

echo "出版日期:".mysql_result($result,$rows_count,"publish_data")."br";

}

//以下是使用mysql_fetch_row()函数来获取到查询结果

while($row=mysql_fetch_row($result))

{

echo "书号:".$row[0]."br";

echo "书名:".$row[1]."br";

echo "价格:".$row[2]."br";

echo "出版日期:".$row[3]."br";

echo "br";

}

//以下是使用mysql_fetch_array()函数来获取到查询结果

while($row=mysql_fetch_array($result))

{

echo "书号:".$row[0]."br";

echo "书名:".$row[1]."br";

echo "价格:".$row["price"]."br";

echo "出版日期:".$row["publish_data"]."br";

echo "br";

}

//mysql_fetch_assoc()同mysql_fetch_array($result,MYSQL_ASSOC)一样

while($row = mysql_fetch_assoc($res)){

echo $row['price'].'::'.$row['publish_data'].”;

} //$row[0]不能取值

//以下是使用mysql_fetch_object()函数来获取到查询结果

while($row=mysql_fetch_object($result))

{

echo "书号:".$row-id."br";

echo "书名:".$row-name."br";

echo "价格:".$row-price."br";

echo "出版日期:".$row-publish_data."br";

echo "br";

}

?

综合比较

本节主要介绍了获取查询结果集的4个函数,此处对它们进行综合比较。

● mysql_result():优点在于使用方便;而缺点在于功能少,一次调用只能获取结果数据集中的一行记录,对较大型的数据库效率较低。

● mysql_fetch_row():优点在于执行效率在4种方法中最高;不足在于只能用数字作为属性索引来获得属性值,在使用时非常容易出现混淆。

● mysql_fetch_array():执行效率同样很高,同mysql_fetch_row()相差无几,并且可以用属性名方式直接获取得属性值,因此,在实际应用中最常用。

● mysql_fetch_object():采用了面向对象的思想,在设计思路上更为先进,如果读者习惯于面向对象的思路来写程序,则会很自然的选择它。其次,该方法的优点还体现在,对于结构较为复杂的数据结果,在逻辑上显得更为清晰。

后3个函数的共同点在于,都是取得当前行的数据,然后自动滑向后一行。有时候,希望控制滑动的行数,这是常常搭配使用的一个函数是mysql_data_seek(),其定义为:

int mysql_data_seek(int result_identifier,int row_number)

调用该函数可以在结果集中向后滑动row_number行,在下一次调用mysql_fetch_*函数时,读取的将是向后滑动row_number行后的记录。

php中mysqli处理查询结果集的几个方法

$sql="select * from user"; $result=$link-query($sql); $row=$result-fetch_all(MYSQLI_BOTH);//参数MYSQL_ASSOC、MYSQLI_NUM、MYSQLI_BOTH规定产生数组类型

$n=0; while($nmysqli_num_rows($result)){ echo "ID:".$row[$n]["id"]."用户名:".$row[$n]["name"]."密码:".$row[$n]["password"]."br /"; $n++;

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。