♂WhiteWin♂

导航

【辅导】Task16 使用MySQL数据库 主要知识点

  作为信息系统开发,必然要用到数据库。PHPMySQL数据库搭配是最好的。本任务主要是帮助大家掌握MySQL数据库的安装与配置,安装数据库管理工具,并掌握PHP中如何连接MySQL数据库。

1、安装MySQL数据库

  搭建PHP开发或生产环境,随XAMPP一道安装MariaDB是最好的选择,默认使用phpMyAdmin数据库工具(Web形式管理)。

  但如果要与c/s端共用数据库,可以单独安装MySQL或MariaDB数据库。

  为什么会有MariaDB?

  如果你计算机之前已经安装MySQL,可以继续使用。

  注意以下几方面:

  (1)选择Server only。当然Developer(Default)也没有问题。

  (2)注意认证模式要选用传统方式(mysql_native_passowrd),因为我们现在使用的PHP版本是PHP 7.3。PHP 7.4则可以选择强密码方式(caching_sha2_password)

2、安装数据库管理工具

  推荐使用Navicat Premium 15。当然也可以选择你喜欢的其它数据库管理工具。

  注意使用破解时,一定要关注防病毒软件。

3、安装示例数据库Sakila

  本课程数据库示例继续使用Sakila数据库。已经在Java课程中做过介绍。

  导入数据前要先创建好Sakila数据库,注意创建时选择好字符集(utf-8)和排序规则(utb8_general_ci)。

4PHP连接MySQL数据库

  PHP访问MySQL数据库有三种方式:面向过程mysqli向对象mysqliPHP数据对象(PDO)。本任务使用面向过程mysqli,推荐使用面向对象mysqli。连接其它类型数据库要使用PDO。

  面向过程mysqli就是使用PHP系统函数,面向对象mysqli就是使用mysqli类对象。注意:PHP7中已经摒弃传统的mysql,而是使用mysqli,但是很多文章(包括官方手册)在介绍时仍然使用mysql,注意要转换成mysqli。

  一般访问数据库都需要以下过程(以查询为例):

  (1)建立数据库连接,使用mysqli_connect函数。

  (2)使用数据库连接和SQL语句执行查询,使用mysqli_query函数。

  (3)处理结果集(处理多条结果用while循环,单条用if就可以)

  使用mysqli_fetch_array数,从结果集中提取一行记录,保存到数组。(可以是数值数组,关联数组,或者两者都有)

  (4)关闭数据库连接。

4.1 建立数据库连接

  建议使用die语句进行错误处理:

 

  可以使用mysqli_connect_error()函数得到最近一次的错误信息(没有错误时返回空串),使用mysqli_connect_errno()函数得到最近一次的错误代码(0表示成功,在mysql源码Docs/mysqld_error.txt中有定义)。

4.2 执行数据库查询

  执行数据库查询使用SQL语句。为保证SQL语句正确,该语句尽量在Navicat中验证过。

 

  失败时返回false,使用select等查询SQL语句时返回mysqli_result对象,其它SQL语句返回true。

  Mysqli_query()函数还有第3个可选参数int $resultmode,取值为MYSQLI_STORE_RESULT一次查询就将结果缓存下来供以后操作,数据库连接可以关闭(缺点是耗内存)。取值MYSQLI_USE_RESULT时,本次query并没有从数据库读取数据,而是每次fetch时再去数据库读取一条记录。

4.3 从结果集提取记录

  实际上有4个函数可以从结果集中提取一条记录:

  • mysqli_fetch_row:数值数组,以整数为索引
  • mysqli_fetch_assoc:关联数组,以字段名为索引
  • mysqli_fetch_array:两者都有,也可以由第2个参数指定数值数组或关联数组
  • mysqli_fetch_object:对象,字段是这个对象的属性。

  即:用 $row=mysqi_fetch_xxx($result);从结果集$result中提取一条记录,则获取Email字段值(第3个字段)可以:

  • 使用row$row[2]
  • 使用assoc$row['email']
  • 使用array上述两者均可
  • 使用object$row->email

4.4 关闭数据库连接

  使用mysqli_close()函数,如:

 

5、课后练习

  有条件的同学,务必练习下安装MySQL(已经安装忽略)、安装Navicat(或其它管理工具)、导入示例Sakila数据库。

  并编写简单测试程序,从Sakila数据库中读取某张表的数据并显示出来。

posted on 2020-05-02 17:11  银翼  阅读(185)  评论(0编辑  收藏  举报