MySqli扩展库的对象对象属性特性以及与mysql库面向过程的比较

MySqli扩展库的对象对象属性特点以及与mysql库面向过程的比较

在学习完mysql库来操作mysql的方式,这是一种面向过程的方式,但是,面向对象是大势所趋,mysqli扩展库也就有必须学习的必要了,mysqli作为一个类库,在我们使用的时候都是以面向对象的方式进行操作,所以,这种方案是比较好的,为此,我特意做了它与mysqli扩展库的对应比较:

下面是mysql库的连接,查询语句,返回结果,释放资源的过程:

<pre name="code" class="php"><pre name="code" class="php"><pre name="code" class="php"><pre name="code" class="php"><?php  
//1:连接数据库  
    $con=mysql_connect("localhost","root","toor");  
    //如果没有连接成功要报错  
    if(!$con){  
        echo "连接失败";  
        exit();  
    }  
//2: 选择要操作的数据库  
    mysql_select_db("test");  
//3:发送SQL指令  
    mysql_query("set names utf8");//设置查询编码  
    $sql="select *from test1";  
    $res=mysql_query($sql,$con);  
//4:返回结果(按行遍历返回)  
    while($row=mysql_fetch_row($res)){  
        echo "$row[0]-------------$row[1]-----------$row[2]-----------$row[3]-----------$row[4]".'<br/>';  
    }  
//5:释放资源,关闭连接  
    mysql_free_result($res);  
    mysql_close($con);  
?>  



下面是mysqli扩展库的连接,查询语句,返回结果,释放资源的过程:
<pre name="code" class="php"><?php
	//创建mysqli对象,实例化
	$mysqli= new MySQLi("localhost","root","toor","test");
	if($mysqli->connect_error){
		die("连接失败 错误信息:".$mysqli->connect_error);
	}else{
		echo "连接成功<br/>";
	}
	//操作数据库,发送sql
	$sql="select * from test.test1";
	$res=$mysqli->query($sql);
	//返回结果
	while($row=$res->fetch_row()){
		foreach($row as $key=>$value){
			echo $value." ";
		}
		echo "<br/>";
	}
	//var_dump($res);
	//关闭资源
	$res->free();
	//关闭连接
	$mysqli->close();
?>

可以清晰的看出来,面向对象的mysqli不仅仅在思想上更进一步,而且在代码的复杂度上也是相对简单的,因此,我觉得,在学习完mysql的那套库之后,再学习mysqli扩展库是非常必要的