山山未迟

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

image

 

回顾

查询:分组(group by:统计),having(条件),排序(order by),限制(limit offset,length)

联合查询:记录叠加,排序(order by:1.必须配合limit,查询子句必须使用括号)

子查询:子查询分类(标量,列,行(构建行元素)和表(数据源:from之后))

视图:虚拟表(有结构,没有数据),视图数据操作

PHP操作MYSQL

1. mysql是什么软件结构?

c/s软件结构

必须通过客户端才能访问服务器。

2. php操作mysql是个什么意思?

php模拟客户端,去操作数据库。

PHP不能操作mysql,mysql为php提供了一个可以操作的扩展,php需要加载该扩展就可以实现操作数据库。

PHP操作数据库过程

1. 加载mysql为php提供的操作扩展

a) 允许php去加载扩展

clip_image002

b) 指定扩展路径

clip_image004

PHP已经成为了可以操作mysql服务器的客户端。

2. 连接认证:找到mysql服务器所在的电脑以及所监听的端口,然后输入正确的用户名和密码:mysql.exe –h主机 –P端口 –u用户名 –p密码

PHP操作mysql,通过函数mysql_connect连接操作

resource mysql_connect(主机地址:端口,用户名,密码); //连接资源

clip_image006

多次连接,返回是同一个连接资源

clip_image008

PHP可以通过mysql_connect的第四个参数来指定,是否获取不同的连接资源,默认的是同一个资源。

clip_image010

3. PHP作为客户端:准备SQL语句

clip_image012

4. PHP作为客户端:发送SQL语句/接收返回的执行结果

mixed mysql_query(要发送的SQL语句[,指定的连接资源]);

布尔类型结果:要执行的SQL语句没有返回值

clip_image014

返回值类型结果:要执行SQL语句有返回结果,返回的结果是一个资源:结果集资源

clip_image016

5. php作为客户端:解析返回结果(资源)

mixed mysql_fetch_row(结果集资源):从结果集中取出一行记录,将该记录的所有字段的数据当做一个个元素存放到一个数组里面,数组的下标是自动生成(索引):应用的原理是结果集指针,如果有数据返回数组,没有数据返回false。

clip_image018

6. 释放资源:断开连接,把连接资源给释放

mysql_free_result(结果集资源):释放结果集资源

mysql_close(连接资源):断开连接资源

clip_image020

流程图

clip_image022

完整PHP操作mysql

1. 要对可能出现的错误进行处理

mysql_errno():mysql出错的错误编号

mysql_error():mysql出错的错误描述

2. 对数据结果进行完整处理

1. 连接认证

clip_image024

2. 设置字符集

clip_image026

3. 选择数据库

clip_image028

4. 数据操作:增删改查

4.1 新增数据

新增数据的情况下,通常会去获得新增数据的自增长id

mysql_insert_id():获取上一次新增操作的自增长id,如果没有自增长就是0

clip_image030

4.2 查询操作

可以通过三个函数对结果集进行操作,得到的结果不一样,都是返回数组

mysql_fetch_array(结果集资源[,获取模式]):从结果集中取出一样记录,返回一个关联索引数组是默认的,也可以通过获取模式来指定获取方式,可以是索引的,也可以是关联的。

clip_image032

clip_image034

mysql_fetch_row():获取一个索引数组,内部就是通过mysql_fetch_array(,MYSQL_NUM)

mysql_fetch_assoc():获取一个关联数组,键名是表中的字段名,值是字段对应的数据

clip_image036

以上三个函数:都是通过结果集指针移动来实现,获取完数据之后会移动指针(指针下移)

clip_image038

5. 释放资源

释放结果集资源和连接资源

posted on 2016-04-20 22:31  山山未迟  阅读(252)  评论(0编辑  收藏  举报