在php与mysql数据库查询我总结了四种方法mysql_result(),mysql_fetch_row(),mysql_fetch_array(),mysql_fetch_object(),四种办法,下面我们一个个来测试并看那个性能最好.
1.使用mysql_result()来获取数据,代码如下:
- <?php
- $connection=mysql_connect("localhost","root","password");
- mysql_select_db("test",$connection);
- $query="insert into users(user_name)";
- $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++)
- {
- 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>";
- echo "用户名:".$row[1]."<br>";
- }
- ?>
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():采用了面向对象思想,在设计思路上更为先进,如果习惯于用面向对象的思路来写程序,则会很自地选择它,其次,该方法的优点还体现在,对于结构较为负责的数据结果,在逻辑上更为清晰. |