23.5.3 使用mysqli存取数据
使用mysqli存取数据也包括面向对象和面向过程两种方式,在本节我们只讨论如何使用面向对象的方式来与MySQL交互,关于mysqli扩展中使用面向过程方式这里就不再详细介绍了,有兴趣的读者可参考官方文档来获取相关的资料。
在mysqli中,执行查询使用query()方法,该方法的语法格式如下:
- mixedquery(string$query[,int$resultmode])
在上述语法中涉及到的参数说明如下。
query:向服务器发送的SQL语句。
resultmode:该参数接受两个值,一个是MYSQLI_STORE_RESULT,表示结果作为缓冲集合返回;另一个是MYSQLI_USE_RESULT,表示结果作为非缓冲集合返回。
下面是使用query()方法执行查询的例子:
代码23-28 光盘/codes/第23章/23.5/query.php
- <?php
- $mysqli=newmysqli("localhost","root","root","sunyang");
- //实例化mysqli
- $query="select*fromemployee";
- $result=$mysqli->query($query);
- if($result){
- if($result->num_rows>0){
- //判断结果集中行的数目是否大于0
- while($row=$result->fetch_array()){
- //循环输出结果集中的记录
- echo($row[0])."<br>";
- echo($row[1])."<br>";
- echo($row[2])."<br>";
- echo($row[3])."<br>";
- echo"<hr>";
- }
- }
- }else{
- echo"查询失败";
- }
- $result->free();
- $mysqli->close();
- ?>
在上面代码中,num_rows为结果集的一个属性,返回结果集中行的数目。方法fetch_array()将结果集中的记录放入一个数组中并将其返回。最后使用free()方法将结果集中的内存释放,使用close()方法将数据库连接关闭。上面代码的输出结果如图23-24所示。
图23-24 使用query()方法的查询结果 |
对于删除记录(delete)、保存记录(insert)和修改记录(update)的操作,也是使用query()方法来执行的,下面是删除记录的例子:
代码23-29 光盘/codes/第23章/23.5/querydelete.php
- <?php
- $mysqli=newmysqli("localhost","root","root","sunyang");
- //实例化mysqli
- $query="deletefromemployeewhereemp_id=2";
- $result=$mysqli->query($query);
- if($result){
- echo"删除操作执行成功";
- }else{
- echo"删除操作执行失败";
- }
- $mysqli->close();
- ?>
保存记录(insert)、修改记录(update)的操作与删除记录(delete)的操作类似,将SQL语句进行相应的修改即可