PHP操作mysql
PHP要操作mysql,而mysql是c/s结构的软件,所以PHP需要充当一个客户端的角色。
PHP本身没有操作mysql数据库的能力,但是PHP提供了一个操作数据库的扩展。从而实现了PHP操作各种各样的数据库。
什么是扩展?
实现某个功能的能力,连接操作数据库。
mysql扩展就是提供了一系列连接和操作mysql数据库的函数。PHP调用该函数,从而实现对mysql数据库的访问。
PHP提供了哪些扩展操作mysql数据库?
三种方式:mysql,mysqli,pdo扩展
PHP.ini文件中
扩展区别:
mysql:比较传统,使用的也是最广泛的扩展,ecshop,dedecms这些都是使用mysql扩展来连接操作mysql数据库。所以该扩展学习的重点。
mysql扩展是面向过程。
mysqli:对mysql的一个补充发展,mysqli既面向过程,又可以面向对象。新版本的PHP已经放弃对mysql扩展的支持,默认的就是支持mysqli
pdo:纯面向对象的扩展,能够很好的支持数据库的切换。等学完面向对象之后讲PDO。
如何使用mysql扩展?
1.开启mysql扩展
2.修改扩展对应的路径
3.重启Apache服务器
4.验证phpinfo()
PHP充当客户端,因为mysql是c/s结构
PHP操作mysql流程
- 连接认证
mysql_connect(‘主机信息’,’用户名’,’用户密码’); //连接数据库,连接成功则返回一个连接资源,否则返回false
每次发出请求不一定是同一个连接
可以使用mysql_connect的第四个参数来确定是否需要新建连接资源(大部分时候不用)
- 发送SQL语句,并获得执行结果
mysql_query返回的结果是一个mixed类型
1.如果mysql_query执行的是有返回结果的SQL语句,那么返回的是结果集资源,如select,show
2.如果mysql_query执行的是没有结果的SQL语句,那么返回的是布尔类型结果,如set,create
3.解析mysql_query返回的结果
解析布尔结果
解析资源结果
4.关闭连接
PHP操作mysql的错误处理
mysql_errno():获得当前错误的错误编号
mysql_error():获得当前错误的错误内容
mysql扩展相关函数
mysql_close:关闭连接
- 释放连接资源,mysql服务端将连接资源回收,供其他连接使用
- 将对应到内存的数据给断开,从而使用操作系统来回收相应的内存
因为脚本执行结束之后,会释放所有内存资源,所以有时候不需要进行手动释放资源。
mysql_free_result:释放结果集资源
告诉操作系统,当前所占用结果集这块内存可以回收掉。
mysql_fetch_array:将一条记录读到一个数组里,对每个字段值有两个元素对应,一个是索引下标,一个是字符下标。
获取不同类型的返回数组
mysql_fetch_assoc:将一条记录读到一个数组里,每个元素的下标是对应的字段名,元素值对应字段值,返回一个关联数组:mysql_fetch_assoc(resource $res)
mysql_fetch_row:返回一个索引数组:mysql_fetch_num (resource $res)
mysql_num_rows:取得结果集中行的数目,必须要指定对应的结果集资源
mysql_affected_rows:取得前一次 MySQL 操作所影响的记录行数,跟结果集没有关系,只看SQL操作
mysql_select_db:选择数据库
不建议这么使用,更建议使用mysql_query去选择数据库。
mysql_insert_id:获取上次插入记录的ID,ID必须是自动增长的ID,指的是当前操作的表的主键是有auto_increment属性。
mysql_data_seek:设置结果集指针的位置
分页功能见demo07_page.php
作业:仿照PHPmyadmin实现创建数据库,创建数据表
插入排序
对于一个数组,先假设第一个元素已经是排好序的了,从第二个元素开始往前面已经排好序的数组里进行比较,找到合适的位置,然后将值插入进去。
代码见demo08_insertsort.php
本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/10437.html
如有侵犯您的合法权益请发邮件951076433@qq.com联系删除