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

推荐订阅源

D
Darknet – Hacking Tools, Hacker News & Cyber Security
Jina AI
Jina AI
博客园_首页
J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
Hugging Face - Blog
Hugging Face - Blog
S
SegmentFault 最新的问题
MyScale Blog
MyScale Blog
P
Proofpoint News Feed
L
Lohrmann on Cybersecurity
Forbes - Security
Forbes - Security
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News
Y
Y Combinator Blog
Google DeepMind News
Google DeepMind News
The Register - Security
The Register - Security
N
News | PayPal Newsroom
S
Security Archives - TechRepublic
量子位
Cisco Talos Blog
Cisco Talos Blog
V
V2EX
C
Cisco Blogs
The Cloudflare Blog
Stack Overflow Blog
Stack Overflow Blog
L
LangChain Blog
Scott Helme
Scott Helme
S
Securelist
Security Latest
Security Latest
爱范儿
爱范儿
TaoSecurity Blog
TaoSecurity Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
I
Intezer
L
LINUX DO - 最新话题
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Check Point Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
美团技术团队
Know Your Adversary
Know Your Adversary
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
PCI Perspectives
PCI Perspectives
月光博客
月光博客
T
Tailwind CSS Blog
Cloudbric
Cloudbric
小众软件
小众软件
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
K
Kaspersky official blog
D
DataBreaches.Net
博客园 - 【当耐特】
有赞技术团队
有赞技术团队

博客园 - 银翼

【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数据库中读取某张表的数据并显示出来。