php操作mysql

php操作mysql

php本身不能操作mysql,但是php有扩展可以实现操作mysql。
php操作mysql的扩展:mysql,mysqli和PDO扩展。
mysql扩展:纯面向过程,里面都是函数,加载扩展后可以调用函数。
mysqli扩展:面向过程+面向对象,里面有函数也有类,加载扩展后可以选择调用函数或调用类操作
PDO:纯面向对象,只有类,加载后只能调用类。
mysql扩展在php5.5之后就移除了,小伙伴注意了。

当php来对mysql进行操作之后:php的角色是mysql的一个客户端

客户端操作服务端有必要的流程

  1. 连接认证:数据库连接资源 mysql_connect(服务器地址包含端口,用户名,用户密码);
    5
    默认的:mysql_connect会产生一个连接资源,即便是重新连接,也会返回原有的连接资源
    6
    如果真的想产生多一个连接:是新的可以在mysql_connect函数的第四个参数控制:true
    7
  2. php发送sql指令(等待执行结果)
  3. mysql服务端接收指令,执行指令,返回结果
  4. php接收结果
    mixed mysql_query(sql指令);
    boolean结果;sql指令没有返回值,布尔true结果只能代表sql语句没有语法错误,false就代表是sql语句有语法错误:主增删改
    8
    resource结果:结果集资源,sql指令有结果返回(show,select),结果集永远为true,主查询
    9
    1. php没有办法直接使用结果集:需要解析结果集mysql扩展提供了一系列函数:mysql_fetch系列:任何操作都是指针操作:操作完就会指针下移。
      mysql_fetch_array:默认获取混合数组,有一组关联,有一组索引。
      10
      当前函数可以实现:只获取关联数组或者索引数组。通过第二个参数限制:MYSQL_BOTH是默认的,MYSQL_ASSOC是关联数组,MYSQL_NUM是索引数组。
      关联数组获取:MYSQL_ASSOC
      11
      索引数组获取:MYSQL_NUM
      12
      mysql_fetch_row:获取索引数组
      mysql_fetch_assoc:直接获取关联数组
      不管是哪个fetch:最终如果结果集指针移动到最后,返回都是false
    2. 如果指针已经移动到最后,那么需要重置指针实现其他操作。
      mysql_data_seek(结果集资源,位置从0开始);
    3. 获取的数据往往只有一行:实际上查多少是为了显示全部:解析全部,循环遍历来实现。
      13
    4. 释放资源:mysql资源通常不需要释放(脚本执行周期不会太长,但是数据库的操作是贯穿整个脚本的)
      mysql_close(资源变量);
      14

增删改查

从计算机角度出发:增删改都属于写,查属于读。

写操作:
连接认证:不一定连接成功,需要对结果进行判断,可以直接使用三目运算(逻辑或)来进行处理,但是无法获取错误信息。
如果要获取错误信息,那么需要使用mysql提供的获取错误的函数:
mysql_errno():获取错误编号,mysql_error():获取错误信息。
15

-------------本文结束感谢您的阅读-------------
求打赏,多少都行
0%