惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
有赞技术团队
有赞技术团队
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
U
Unit 42
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Recent Announcements
Recent Announcements
Y
Y Combinator Blog
Vercel News
Vercel News
Martin Fowler
Martin Fowler
V
V2EX
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
L
LangChain Blog
云风的 BLOG
云风的 BLOG
H
Hackread – Cybersecurity News, Data Breaches, AI and More
aimingoo的专栏
aimingoo的专栏
G
Google Developers Blog
The GitHub Blog
The GitHub Blog
N
Netflix TechBlog - Medium
Google DeepMind News
Google DeepMind News
雷峰网
雷峰网
阮一峰的网络日志
阮一峰的网络日志
F
Fortinet All Blogs

博客园 - 银翼

【MySQL】Windows下如何彻底卸载MySQL? 【MySQL】Windows下如何重置root账号密码? 【Java】Task07实验4第5题解析 【辅导】Task12 类的定义与继承练习 【辅导】Task11 如何获取文件上传错误信息 PHP开发环境配置 XAMPP更换Apahce服务端口号 《Web应用开发技术(PHP)》往届学生优秀作业 【辅导】Task19 实现用户登录 主要知识点 【辅导】Task18 更新与插入删除操作 主要知识点 【辅导】Task17 查询数据 主要知识点 【辅导】Task15 熟悉错误与异常处理 主要知识点 【辅导】Task14 使用正则表达式 主要知识点 【辅导】Task13 使用会话管理 主要知识点(2) 【辅导】Task13 使用会话管理 主要知识点(1) 【辅导】Task12 使用类和对象 主要知识点(2) 【辅导】Task12 使用类和对象 主要知识点(1) 【辅导】Task11 熟悉PHP文件操作 主要知识点 【辅导】Task10 掌握PHP表单处理 主要知识点
【辅导】Task16 使用MySQL数据库 主要知识点
银翼 · 2020-05-02 · via 博客园 - 银翼

  作为信息系统开发,必然要用到数据库。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数据库中读取某张表的数据并显示出来。