美文网首页Mysql
8.PHP操作MySQL数据库(Mysqli扩展)

8.PHP操作MySQL数据库(Mysqli扩展)

作者: 好像在哪见过你丶 | 来源:发表于2019-05-23 16:05 被阅读0次

思考:如果数据库的操作都是需要我们手动去调用客户端发送指令,那么这样的操作有什么意义呢?

引入:手动通过客户端操作MySQL数据库,只是我们学习SQL的一种手段。要实现数据库的自动调用,就需要客户端能够将事先组织好的SQL指令自动的根据需求发送给服务器去执行。这个使用就需要利用到PHP来充当客户端,再配合Apache调用PHP模块来共同协作完成。

  • PHP充当MySQL的客户端
  • PHP能够组织SQL指令并发送给服务端去执行
  • PHP能够从执行结果中获取和解析数据来供程序使用

总结:手动通过MySQL客户端去操作数据库那是DBA的事情,从项目的角度来讲,一定是想办法让客户端能够自动去发送SQL并解析SQL指令,从而配合数据库完成项目需求。


思考:PHP如何能够操作MySQL服务器呢?PHP不是MySQL对应的客户端啊!

引入:PHP的确不是MySQL官方的客户端,但是MySQL本质是一种应用程序,客户端与服务端的通信是通过一些网络原理来实现的,而PHP也是一种应用程序,自然也可以找到对应的通信协议来实现充当客户端的角色。

1. PHP加载Mysqli充当MySQL客户端【掌握】

定义:PHP价值Mysqli充当MySQL客户端,是指PHP内部通过一些底层的协议,达成了与MySQL服务端实现数据互通的效果。从而PHP在开发过程中,只需要去调用相关的扩展就能充当客户端角色。

  1. PHP中提供很多数据库产品客户端的扩展,在PHP的ext文件夹中
    PHP支持的数据库产品扩展.png
  1. PHP不确定用户在使用PHP的时候会选择哪种产品,因此并没有启用相应扩展,如需启用需要在php.ini文件中开启相应扩展
php.ini加载mysqli扩展.png

注意:PHP的配置文件修改需要重启Apache才会生效

如果php.ini文件加载扩展是第一次,那么需要启用扩展文件所在路径:==extension_dir== = ==扩展所在路径==

  1. 查看PHP中是否加载了mysqli扩展:在PHP代码中使用phpinfo()函数
PHP验证mysqli扩展加载成功.png
  1. 为什么选择mysqli扩展?
  • mysqli扩展封装的功能强大
  • mysqli支持面向对象也支持面向过程(当前所有代码都是面向过程)

总结:PHP自身不能直接操作MySQL,需要借助扩展才能充当MySQL的客户端


思考:PHP充当了MySQL的客户端后到底该如何才能真实操作MySQL呢?

引入:PHP加载的mysqli扩展,实际是上提供了一套操作数据库的函数,我们只需要去调用对应的函数即可。

2. PHP操作MySQL【掌握】

定义:PHP操作MySQL,实际就是通过调用mysqli扩展的一系列函数来执行一些根据实际业务组织的SQL指令。

  1. mysqli为PHP开发者提供了一套可操作函数,我们可以通过操作手册来进行查看:在索引中输入mysqli_即可


    mysqli操作手册使用.png
  1. 常用的mysqli方法有以下几个
  • mysqli_connect:连接认证
  • mysqli_connect_error:连接失败的错误信息
  • mysqli_close:关闭连接
  • mysqli_errno:出现错误的编号
  • mysqli_error:出现错误的信息
  • mysqli_query:执行查询SQL指令
  • mysqli_affected_rows:当前mysql操作受影响的行数(写操作)
  • mysqli_num_rows :当前查询结果集中的行数
  • mysqli_free_result:释放查询的结果集
  • mysqli_fetch_row:从查询结果集中取出一条记录,返回一维数组(索引数组)
  • mysqli_fetch_assoc:从查询结果集中取出一条记录,返回以为数组(关联数组:字段名作为下标)
  • mysqli_fetch_all:从查询结果集中取出所有记录,返回二维数组
  1. PHP操作MySQL
  • 连接认证、设定字符集和选择数据库
<?php
//使用mysqli操作数据库 
$conn = @mysqli_connect('localhost','root','root');

//设置字符集
$sql = 'set names utf8';
$res = mysqli_query($conn,$sql);

//选择数据库
$sql = "use my_database";
$res = mysqli_query($conn,$sql);
  • 新增数据
<?php
//接连接认证
$sql = "insert into my_student1 values (null,'犬夜叉','男',200,5)";
$res = mysqli_query($conn,$sql);

//查看受影响的行数
echo mysqli_affected_rows($conn);
  • 修改数据:与新增数据一样
<?php
//接连接认证
$sql = "update my_student1 set age = 22 where id = 1";  #注意筛选条件
$res = mysqli_query($conn,$sql);

//查看受影响的行数
echo mysqli_affected_rows($conn);
  • 删除数据:与新增和修改一样
<?php
//接连接认证
$sql = "delete from my_student1 where id = 1";
$res = mysqli_query($conn,$sql);

//查看受影响的行数
echo mysqli_affected_rows($conn);
  • 查询数据
<?php
//接连接认证
    
$sql = "select * from my_student1";
$res = mysqli_query($conn,$sql);                #此时$res是结果集

//读取一条数据
$row = mysqli_fetch_assoc($res);                #获取一条记录,且指针下移(下次获取下一条)

//取出全部
$lists = array();
while($row = mysqli_fetch_assoc($res)){
    $lists[] = $row;                            #二维数组保存
}

总结

  1. PHP操作mysql是利用mysqli扩展提供的函数
  2. PHP充当mysql客户端操作的流程和mysql.exe一致
  3. 程序操作数据库本质就是实现数据的增查改删(CRUD)

相关文章

  • php 数据库连接

    mysql扩展进行数据库连接的方法: mysqli扩展: PDO扩展: 数据库操作 数据库查询操作

  • php数据库编程(mysql mysqli pdo)

    php有三种方式来操作mysql数据库1.mysql扩展库mysqli扩展库pdo mysql扩展库和mysql数...

  • php数据库使用

    1、php数据库编程 三种方式操作mysql数据库: 1、mysql扩展库2、mysqli 扩展库3、pdo 2、...

  • 8.PHP操作MySQL数据库(Mysqli扩展)

    思考:如果数据库的操作都是需要我们手动去调用客户端发送指令,那么这样的操作有什么意义呢? 引入:手动通过客户端操作...

  • php数据库编程

    一、php有三种方式操作我们的mysql数据库:1、mysql扩展库;2、mysqli扩展库;3、pdo。 ps:...

  • mysqli

    mysqli是php5.0之后出现对mysql进行的扩展. mysqli的基本操作 $con = new mysq...

  • 易班技术部新生培训--PHP与MySQL

    PHP操作MySQL有多种方法 mysql扩展(在后面版本会被移除,不推荐使用) mysqli扩展 PDO扩展在这...

  • MySQLi扩展了解

    什么是PHP的MySQLi扩展? PHP的MySQLi扩展又被称为MySQL增强扩展,mysqli扩展在PHP 5...

  • php笔记(数据库)

    MySql常用的扩展有原生的mysql库,也可以使用增强版的Mysqli扩展,还可以使用PDO进行连接与操作 my...

  • MysqlLi

    1、MySQLi相对于MySQL的优势 2、MySQLi扩展的安装 3、验证扩展是否开启 检测是否加载 检测扩展中...

网友评论

    本文标题:8.PHP操作MySQL数据库(Mysqli扩展)

    本文链接:https://www.haomeiwen.com/subject/mclbzqtx.html