回顾
查询:分组(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去加载扩展
b) 指定扩展路径
PHP已经成为了可以操作mysql服务器的客户端。
2. 连接认证:找到mysql服务器所在的电脑以及所监听的端口,然后输入正确的用户名和密码:mysql.exe –h主机 –P端口 –u用户名 –p密码
PHP操作mysql,通过函数mysql_connect连接操作
resource mysql_connect(主机地址:端口,用户名,密码); //连接资源
多次连接,返回是同一个连接资源
PHP可以通过mysql_connect的第四个参数来指定,是否获取不同的连接资源,默认的是同一个资源。
3. PHP作为客户端:准备SQL语句
4. PHP作为客户端:发送SQL语句/接收返回的执行结果
mixed mysql_query(要发送的SQL语句[,指定的连接资源]);
布尔类型结果:要执行的SQL语句没有返回值
返回值类型结果:要执行SQL语句有返回结果,返回的结果是一个资源:结果集资源
5. php作为客户端:解析返回结果(资源)
mixed mysql_fetch_row(结果集资源):从结果集中取出一行记录,将该记录的所有字段的数据当做一个个元素存放到一个数组里面,数组的下标是自动生成(索引):应用的原理是结果集指针,如果有数据返回数组,没有数据返回false。
6. 释放资源:断开连接,把连接资源给释放
mysql_free_result(结果集资源):释放结果集资源
mysql_close(连接资源):断开连接资源
流程图
完整PHP操作mysql
1. 要对可能出现的错误进行处理
mysql_errno():mysql出错的错误编号
mysql_error():mysql出错的错误描述
2. 对数据结果进行完整处理
1. 连接认证
2. 设置字符集
3. 选择数据库
4. 数据操作:增删改查
4.1 新增数据
新增数据的情况下,通常会去获得新增数据的自增长id
mysql_insert_id():获取上一次新增操作的自增长id,如果没有自增长就是0
4.2 查询操作
可以通过三个函数对结果集进行操作,得到的结果不一样,都是返回数组
mysql_fetch_array(结果集资源[,获取模式]):从结果集中取出一样记录,返回一个关联索引数组是默认的,也可以通过获取模式来指定获取方式,可以是索引的,也可以是关联的。
mysql_fetch_row():获取一个索引数组,内部就是通过mysql_fetch_array(,MYSQL_NUM)
mysql_fetch_assoc():获取一个关联数组,键名是表中的字段名,值是字段对应的数据
以上三个函数:都是通过结果集指针移动来实现,获取完数据之后会移动指针(指针下移)
5. 释放资源
释放结果集资源和连接资源