重蔚自留地php学习第四十天——php操作数据库教程

PHP操作mysql

PHP要操作mysql,而mysql是c/s结构的软件,所以PHP需要充当一个客户端的角色。

PHP本身没有操作mysql数据库的能力,但是PHP提供了一个操作数据库的扩展。从而实现了PHP操作各种各样的数据库。

 

什么是扩展?

实现某个功能的能力,连接操作数据库。

mysql扩展就是提供了一系列连接和操作mysql数据库的函数。PHP调用该函数,从而实现对mysql数据库的访问。

 

PHP提供了哪些扩展操作mysql数据库?

三种方式:mysql,mysqli,pdo扩展

PHP.ini文件中

重蔚自留地php学习第四十天——php操作数据库教程

扩展区别:

mysql:比较传统,使用的也是最广泛的扩展,ecshop,dedecms这些都是使用mysql扩展来连接操作mysql数据库。所以该扩展学习的重点。

mysql扩展是面向过程。

mysqli:对mysql的一个补充发展,mysqli既面向过程,又可以面向对象。新版本的PHP已经放弃对mysql扩展的支持,默认的就是支持mysqli

pdo:纯面向对象的扩展,能够很好的支持数据库的切换。等学完面向对象之后讲PDO。

 

如何使用mysql扩展?

1.开启mysql扩展

重蔚自留地php学习第四十天——php操作数据库教程

2.修改扩展对应的路径

重蔚自留地php学习第四十天——php操作数据库教程

3.重启Apache服务器

4.验证phpinfo()

重蔚自留地php学习第四十天——php操作数据库教程 重蔚自留地php学习第四十天——php操作数据库教程

PHP操作mysql

PHP充当客户端,因为mysql是c/s结构

PHP操作mysql流程

重蔚自留地php学习第四十天——php操作数据库教程

  1. 连接认证

mysql_connect(‘主机信息’,’用户名’,’用户密码’); //连接数据库,连接成功则返回一个连接资源,否则返回false

重蔚自留地php学习第四十天——php操作数据库教程

每次发出请求不一定是同一个连接

重蔚自留地php学习第四十天——php操作数据库教程

可以使用mysql_connect的第四个参数来确定是否需要新建连接资源(大部分时候不用)

重蔚自留地php学习第四十天——php操作数据库教程

  1. 发送SQL语句,并获得执行结果

重蔚自留地php学习第四十天——php操作数据库教程

mysql_query返回的结果是一个mixed类型

1.如果mysql_query执行的是有返回结果的SQL语句,那么返回的是结果集资源,如select,show

2.如果mysql_query执行的是没有结果的SQL语句,那么返回的是布尔类型结果,如set,create

重蔚自留地php学习第四十天——php操作数据库教程

3.解析mysql_query返回的结果

解析布尔结果

解析资源结果

重蔚自留地php学习第四十天——php操作数据库教程

4.关闭连接

重蔚自留地php学习第四十天——php操作数据库教程

PHP操作mysql的错误处理

mysql_errno():获得当前错误的错误编号

mysql_error():获得当前错误的错误内容

重蔚自留地php学习第四十天——php操作数据库教程

mysql扩展相关函数

mysql_close:关闭连接

  1. 释放连接资源,mysql服务端将连接资源回收,供其他连接使用
  2. 将对应到内存的数据给断开,从而使用操作系统来回收相应的内存

因为脚本执行结束之后,会释放所有内存资源,所以有时候不需要进行手动释放资源。

mysql_free_result:释放结果集资源

告诉操作系统,当前所占用结果集这块内存可以回收掉。

重蔚自留地php学习第四十天——php操作数据库教程

mysql_fetch_array:将一条记录读到一个数组里,对每个字段值有两个元素对应,一个是索引下标,一个是字符下标。

重蔚自留地php学习第四十天——php操作数据库教程

获取不同类型的返回数组

重蔚自留地php学习第四十天——php操作数据库教程

mysql_fetch_assoc:将一条记录读到一个数组里,每个元素的下标是对应的字段名,元素值对应字段值,返回一个关联数组:mysql_fetch_assoc(resource $res)

mysql_fetch_row:返回一个索引数组:mysql_fetch_num (resource $res)

mysql_num_rows:取得结果集中行的数目,必须要指定对应的结果集资源

重蔚自留地php学习第四十天——php操作数据库教程

mysql_affected_rows:取得前一次 MySQL 操作所影响的记录行数,跟结果集没有关系,只看SQL操作

重蔚自留地php学习第四十天——php操作数据库教程

mysql_select_db:选择数据库

重蔚自留地php学习第四十天——php操作数据库教程

不建议这么使用,更建议使用mysql_query去选择数据库。

mysql_insert_id:获取上次插入记录的ID,ID必须是自动增长的ID,指的是当前操作的表的主键是有auto_increment属性。

重蔚自留地php学习第四十天——php操作数据库教程

mysql_data_seek:设置结果集指针的位置

重蔚自留地php学习第四十天——php操作数据库教程

分页功能见demo07_page.php

作业:仿照PHPmyadmin实现创建数据库,创建数据表

 

插入排序

对于一个数组,先假设第一个元素已经是排好序的了,从第二个元素开始往前面已经排好序的数组里进行比较,找到合适的位置,然后将值插入进去。

代码见demo08_insertsort.php

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/10437.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
重蔚的头像重蔚管理团队
上一篇 2018年10月26日 09:44
下一篇 2018年11月7日 00:00

相关推荐

  • 经验分享如何搭建mysql服务器。

    本文将详细介绍如何搭建MySQL服务器,包括安装、配置和启动等步骤。 搭建MySQL服务器 MySQL是一个开源的关系型数据库管理系统,广泛应用于各种应用场景中,搭建一个稳定可靠的MySQL服务器对于数据管理和应用程序开…

    2024年7月21日
    08
  • 小编教你html 如何用mysql数据库数据类型。

    在HTML中,我们无法直接使用MySQL数据库的数据类型,我们可以使用PHP、JavaScript等后端语言来连接MySQL数据库,并将数据类型转换为HTML所需的格式,下面我将详细介绍如何使用PHP和MySQL数据库数据类型。 (图片来…

    2024年6月24日
    04
  • 今日分享mysql保留小数点后两位。

    MySQL保留小数 在MySQL中,我们可以使用不同的数据类型来存储小数,以下是一些常用的数据类型以及它们的取值范围: 1. FLOAT:单精度浮点数,取值范围为-3.4E+38到3.4E+38之间。 2. DOUBLE:双精度浮点数,取值范围为…

    2024年6月18日
    02
  • 关于探寻MySQL数据库背后的神奇一千张表的挑战与应对。

    在数据库世界中,MySQL是一个被广泛使用的开源关系型数据库管理系统,它以其高性能、稳定性和灵活性而闻名,被广泛应用于各种规模的企业和组织中,随着数据量的不断增长,数据库的性能和可扩展性成为了一个重要的挑…

    2024年6月20日
    04
  • 经验分享sql2000怎么导入mysql。

    在将SQL Server 2000数据库导入到MySQL数据库时,可以采用以下步骤: 1. 导出SQL Server 2000数据库:需要在SQL Server 2000中导出要导入的数据库,可以使用SQL Server Management Studio (SSMS)来执行此操作,打开…

    2024年6月28日
    03
  • 今日分享如何将数据库放云服务器里。

    将数据库部署到云服务器上,首先需要购买一个合适的云服务器。之后,可以选择自行配置数据库,也可以直接选择云服务商提供的云数据库产品。如果自行配置数据库,先远程连接登录上云服务器,不同的数据库版本可能安…

    2024年7月20日
    05
  • 我来教你MySQL1062报错解决之道。

    MySQL报错1062通常是由于唯一约束冲突导致的,解决方法是检查插入或更新的数据中是否有重复的唯一键值,然后修改或删除重复的数据。 MySQL 1062错误通常指的是“Duplicate entry”错误,这个错误发生在你试图在数据库…

    2024年6月26日
    02
  • 关于mysql时间戳是什么意思。

    MySQL时间戳是一种数据类型,用于存储日期和时间信息。有两种形式:1、TIMESTAMP类型,占用4个字节的存储空间,存储的值会根据时区进行转换,存储为UTC,时间戳的值是可以自动更新的;2、DATETIME类型,占用8个字节…

    2024年7月27日
    01

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息