登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

pcwanli的博客

nx

 
 
 

日志

 
 

mysqli简介  

2010-11-23 10:10:19|  分类: php |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1.mysqli简介

要在PHP中使用mysqli扩展,需要在配置文件php.ini中去掉extension=php_mysqli.dll前面的分号。

mysqli与mysql扩展相比,mysqli扩展在以下方面有了明显提高:

.兼容性和维护性

.面向对象

.速度和安全性

.预准备语句

.调试功能

2.连接与断开服务器

面向对象,mysqli提供了一个连接MySQL的成员方法connect()。当实例化构造方法为空的mysqli类时,用mysqli对象调用connect()方法同样可连接MySQL。

  <?php
  $db_host = "localhost";
  $db_user = "root";
  $db_psw = "root";
  $db_name = "sunyang";
  $mysqli = new mysqli();
  $mysqli->connect($db_host,$db_user,$db_psw,$db_name);
  $mysqli->close();
  ?>

面向过程,mysqli提供了函数mysqli_connect()与MySQL建立连接。

  <?php
  $connection = mysqli_connect("localhost","root","root","sunyang");
  if($connection){
      echo "数据库连接成功";
  }else{
      echo "数据库连接失败";
  }
  mysqli_close($connection);
  ?>

3.使用mysqli存取数据

  <?php
  $mysqli = new mysqli("localhost","root","root","sunyang") or die("连接数据库失败");
  $query = "SELECT * FROM employee";
  $result = $mysqli->query($query);
  if($result){
   if($result->num_rows > 0){
    while(($row = $result->fetch_array()) != false){
     echo $row[0]."<br>";
     echo $row[1]."<br>";
     echo $row[2]."<br>";
     echo $row[3]."<br>";
     echo "<hr>";
    }
   }
  }else{
   echo "查询失败";
  }
  $result->free();
  $mysqli->close();
  ?>

4.使用mysqli删除数据

  <?php
  $mysqli = new mysqli("localhost","root","root","sunyang");
  $query = "DELETE FROM employee WHERE emp_id=2";
  $result = $mysqli->query($query);
  if($result){
   echo "删除操作执行成功";
  }else{
   echo "删除操作执行失败";
  }
  $mysqli->close();
  ?>

5.预准备语句


使用预准备语句可提高重复使用语句的性能,在PHP中,使用prepare()方法来进行预准备语句查询,使用execute()方法来执行预准备语句。PHP有两种预准备语句:一种是绑定结果,另一种是绑定参数。

绑定结果,所谓绑定结果就是把PHP脚本中的自定义变量绑定到结果集中的相应字段上。

  <?php
  $mysqli = new mysqli("localhost","root","root","sunyang");
  $query = "SELECT * FROM employee";
  $result = $mysqli->prepare($query);
  $result->execute();
  $result->bind_result($id,$number,$name,$age);
  while($result->fetch()){
   echo $id;
   echo $number;
   echo $name;
   echo $age;
 
  $result->close();
  $mysqli->close();
  ?>
绑定参数,所谓绑定参数就是把PHP脚本中的自定义变量绑定到SQL语句中的参数(参数使用“?”代替)上,绑定参数使用bind_param()方法。

  <?php
  $mysqli = new mysqli("localhost","root","root","sunyang");
  $query = "INSERT INTO employee(emp_number,emp_name,emp_age) VALUES(?,?,?)";
  $result = $mysqli->prepare($query);
  $result->bind_param("ssi",$number,$name,$age);
  $number = 'sy0807';
  $name = 'employee7';
  $age = 20;
  $result->execute();
  $result->close();
  $mysqli->close();
  ?>

在一个脚本中还可以同时绑定参数和绑定结果。

  <?php
  $mysqli = new mysqli("localhost","root","root","sunyang");
  $query = "SELECT * FROM employee WHERE emp_id < ?";
  $result = $mysqli->prepare($query);
  $result->bind_param("i",$emp_id);
  $emp_id = 4;
  $result->execute();
  $result->bind_result($id,$number,$name,$age);
  while($result->fetch()){
   echo $id."<br>";
   echo $number."<br>";
   echo $name."<br>";
   echo $age."<br>";
  }
  $result->close();
  $mysqli->close();
  ?>

6.多个查询

mysqli扩展提供了能持续执行多个查询的multi_query()方法,在执行多个查询时,除了最后一个查询语句,每个查询语句之间要用“;”分开。store_result()方法用于获取一个缓冲结果集;fetch_row()方法的作用类似于fetch_array()方法;more_results()方法用于从一个多查询中检查是否还有更多的查询结果;next_result()方法用于从一个多查询中准备一个查询结果。

  <?php 
  $mysqli = new mysqli("localhost","root","root","sunyang");
  $query = "SELECT emp_name FROM employee;";
  $query .= "SELECT dep_name FROM depment";
  if($mysqli->multi_query($query)){
   do{
    if($result = $mysqli->store_result()){
     while($row = $result->fetch_row()){
      echo $row[0];
      echo "<br>";
     }
     echo $result->close();
    }
    if($mysqli->more_results()){
     echo "----------<br>";
    }
   }while($mysqli->next_result());
  }
  $mysqli->close();
  ?>

  评论这张
 
阅读(484)| 评论(0)

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018