目录
一、MySQL扩展的介绍
二、PHP和MySQL连接的基本操作
(1)MySQL连接的准备工作
(2)插入删除操作
三、查询操作
(1)mysqli_fetch_assoc
(2)mysqli_fetch_row
(3)mysqli_fetch_array
四、相关函数
(1)有关字段信息
(2)其他函数
一、MySQL扩展的介绍
关于PHP和MySQL连接介绍我就不多说了,大家也清楚,PHP作为后台语言,与数据库的交互必不可少,不然我们如何制作出所谓的动态网站呢?这里我主要讲解的是PHP8。PHP5后的一些扩展都变了,就比如说连接的mysql_connect在PHP8中根本无法识别,他只能在PHP5以下的版本才能使用,PHP8连接使用的是mysqli_connect
二、PHP和MySQL连接的基本操作
(1)MySQL连接的准备工作
PHP和MySQL连接基本上分成四步:
(1)连接MySQL
(2)设置字符集(客户端当前执行脚本是什么字符集就用什么字符集)
(3)选择数据库
(4)关门连接释放资源
这里我做一个基本操作来熟悉一些,sql语句实现删除一行数据。
<?php //进行MySQL连接 $link=mysqli_connect('localhost','用户名','密码','选择的数据库','3306') or die('数据库连接失败'); //设置编码集 mysqli_set_charset($link,'utf8'); //进行MySQL语句 if(mysqli_query($link,'delete from new_1 where id=1')){ echo '成功'; } else{ echo '失败'; } ?>
(2)插入删除操作
<?php header('Content-type:text/html;charset=utf-8'); //进行MySQL连接 $link=mysqli_connect('localhost','root','gq99668877','class_first','3306'); //设置编码集 mysqli_set_charset($link,'utf8'); //sql语句 $sql1="insert into new_1 value (null,'asd','abxc');"; $sql2="delete from new_1 where name='asd'"; $res=mysqli_query($link,$sql1); mysqli_query($link,$sql2); ?>
三、查询操作
查询的基本操作是获得结果集行数,然后开始获取,注意是一行一行获取,如果你想获取全部,可以使用循环得到,获取结果集有三种函数。如下。
(1)mysqli_fetch_assoc
他获取结果集后返回的是个数组,索引是字段名,数组值是数据值
<?php header('Content-type:text/html;charset=utf-8'); //进行MySQL连接 $link=mysqli_connect('localhost','root','gq99668877','class_first','3306'); $sql="select *from new_1"; $res=mysqli_query($link,$sql); echo '<pre>'; $arr=mysqli_fetch_assoc($res); print_r($arr); ?>
(2)mysqli_fetch_row
他获取结果集后返回的是数组,数组下标就是数字0,1,2以此类推,数组值是数据值
<?php header('Content-type:text/html;charset=utf-8'); //进行MySQL连接 $link=mysqli_connect('localhost','root','gq99668877','class_first','3306'); $sql="select *from new_1"; $res=mysqli_query($link,$sql); echo '<pre>'; $arr=mysqli_fetch_row($res); print_r($arr); ?>
(3)mysqli_fetch_array
mysqli_fertch_array与前面不同的是它可以有三种形式,这里形式的意思是它可以也像前面两种一样索引是数字或者是字段,同时也可以两种都实现。即加上第二个参数即可,第二个参数是固定的,只能从下面三个选择。
MYSQLI_NUM:数组下标是数字
MYSQLI_ASSOC:数组下标是字段名=
MYSQLI_BOTH:前面两种都有,数组下标既有数字也有字段名
<?php header('Content-type:text/html;charset=utf-8'); //进行MySQL连接 $link=mysqli_connect('localhost','root','gq99668877','class_first','3306'); $sql="select *from new_1"; $res=mysqli_query($link,$sql); echo '<pre>'; $arr1=mysqli_fetch_array($res,MYSQLI_NUM); $arr2=mysqli_fetch_array($res,MYSQLI_ASSOC); $arr3=mysqli_fetch_array($res,MYSQLI_BOTH); print_r($arr1); print_r($arr2); print_r($arr3); ?>
四、相关函数
(1)有关字段信息
mysqli_num_fields:获得字段数,也就是知道有多少列
mysqli_fetch_field_direct:通过这个函数的指代,我们可以知道随意一个列的名字,表名等等。
<?php header('Content-type:text/html;charset=utf-8'); //进行MySQL连接 $link=mysqli_connect('localhost','root','gq99668877','class_first','3306'); //设置编码集 mysqli_set_charset($link,'utf8'); //sql语句 $sql="select *from new_1"; $res=mysqli_query($link,$sql); //得到字段数 echo mysqli_num_fields($res); echo '<br/>'; $f=mysqli_fetch_field_direct($res,0); //第一列的字段名 echo $f->name; echo '<br/>'; //知道表名 echo $f->table; ?>
(2)其他函数
mysqli_insert_id:获得上一条插入记录并且是自增情况的id。
<?php header('Content-type:text/html;charset=utf-8'); //进行MySQL连接 $link=mysqli_connect('localhost','root','gq99668877','class_first','3306'); //设置编码集 mysqli_set_charset($link,'utf8'); //sql语句 $sql1="insert into new_1 value (null,'asd','abxc');"; mysqli_query($link,$sql1); echo mysqli_insert_id($link); ?>