当前位置:首页 > Mysql教程 > 列表

PHP mysqli扩展库与mysql用法对比

发布:smiling 来源: PHP粉丝网  添加日期:2014-10-08 14:01:40 浏览: 评论:0 

本文章来给各位同学介绍在php中的两种数据库操作对比,我们常用的是mysql但php学可以支持mysqli,下面我来给大家介绍他们两的一些用法与比较.

1、在PHP中 使用mysqli扩展库对mysql 的dql操作,代码如下:

  1. <?php 
  2.  
  3.     header("Content-type: text/html;charset=utf-8"); 
  4.     //mysqli操作mysql数据库(面向对象方式) 
  5.  
  6.     //1、创建MySQLi对象 
  7.  
  8.     $mysqli =new MySQLi("localhost","root","root","test"); 
  9.     if($mysqli->connect_error){ 
  10.         die("连接失败".$mysqli->connect_error); 
  11.     } 
  12.  
  13.     //2、操作数据库(发送sql) 
  14.     $sql="select *from user1"
  15.  
  16.     //3、处理结果 
  17.     $res =$mysqli->query($sql); 
  18.     //var_dump($res); 
  19.     //fetch_assoc fetch_array fetch_object 
  20.     while($row=$res->fetch_row()){ 
  21.  
  22.         var_dump($row); 
  23.  
  24. /*        foreach($row as $val){ 
  25.             echo '--'.$val; 
  26.         } 
  27.         echo '<br/>';*/ 
  28.     } 
  29.     //4、关闭资源 
  30.     $res->free(); 
  31.     $mysqli->close(); 
  32. ?> 

下面是面向过程的,代码如下:

  1. <?php 
  2.  
  3.     header("Content-type: text/html;charset=utf-8"); 
  4.      
  5.     $mysqli=mysqli_connect("localhost","root","root","test"); 
  6.     if(!$mysqli){ 
  7.         die("连接失败".mysqli_connect_error()); 
  8.     } 
  9.  
  10.     $sql="select *from user1"
  11.  
  12.     $res=mysqli_query($mysqli,$sql); 
  13.     //var_dump($res); 
  14.  
  15.     while($row=mysqli_fetch_row($res)){ 
  16.          
  17.         foreach ($row as $val){ 
  18.              
  19.             echo '-'.$val
  20.         } 
  21.         echo '<br/>'
  22.     } 
  23.  
  24.     //释放内存 
  25.     mysqli_free_result($res); 
  26.     mysqli_close($mysqli); 
  27. ?> 

2、在PHP中 使用mysqli扩展库对mysql 的dml操作,代码如下:

  1. <?php 
  2.      
  3.     //使用mysqli 扩展库对mysql的crud 操作 
  4.     header("Content-type: text/html;charset=utf-8"); 
  5.     $mysqli = new MySQLi("localhost","root","root","test"); 
  6.  
  7.     if($mysqli->connect_error){ 
  8.         die("连接失败".$mysql->connect_error); 
  9.     } 
  10.  
  11.     //增加一条记录 
  12.     //$sql="insert into user1 (name,password,email,age) values ('lucy',md5('lucy'),'lucy@163.com',17)"; 
  13.     //删除一条记录 
  14.     //$sql="delete from user1 where id =80"; 
  15.     //更新一条记录 
  16.     $sql="update user1 set age=20 where id=7"
  17.  
  18.     $res=$mysqli->query($sql); 
  19.     if(!$res){ 
  20.         echo "操作失败".$mysqli->error; 
  21.     }else
  22.         if($mysqli->affected_rows>0){ 
  23.             echo "成功"
  24.         }else
  25.             echo "没有行受影响";     
  26.         } 
  27.     } 
  28.  
  29.     //关闭资源 
  30.     $mysqli->close(); 
  31. ?> 

3、进行封装,代码如下:

  1. <?php 
  2.  
  3.     class SqlHelper{ 
  4.          
  5.         private $mysqli
  6.         //这里先写死,以后写死的东西用一个文件来配置 
  7.         private static $host="localhost"
  8.         private static $user="root"
  9.         private static $pwd="root"
  10.         private static $db="test"
  11.  
  12.         public function __construct(){ 
  13.              
  14.             $this->mysqli=new MySQLi(self::$host,self::$user,self::$pwd,self::$db); 
  15.             if($this->mysqli->connect_error){ 
  16.                 die("连接失败".$this->mysqli->connect_error); 
  17.             } 
  18.             //设置字符集 
  19.             $this->mysqli->query("set names utf8"); 
  20.         } 
  21.  
  22.         //dql operate 
  23.         function execute_dql($sql){ 
  24.  
  25.             $res =$this->mysqli->query($sqlor die($this->mysqli->error); 
  26.             return $res;         
  27.         } 
  28.  
  29.         //dml operate 
  30.         function execute_dml($sql){ 
  31.  
  32.             $res =$this->mysqli->query($sqlor die($this->mysqli->error); 
  33.             //phpfensi.com 
  34.             if(!$res){ 
  35.                 return 0;//失败 
  36.             }else
  37.                 if($this->mysqli->affected_rows>0){ 
  38.                     return 1;//成功 
  39.                 }else
  40.                     return 2;//没有行到影响 
  41.                 } 
  42.             } 
  43.         } 
  44.     } 
  45. ?>

Tags: mysqli扩展库 mysql用法对比

分享到: