目录
一. PHP操作mysql数据库环境准备
二. PHP数据库连接步骤
1.第一步:连接数据库服务器;
2.第二步:判断错误;
3.第三步:选择数据库;
4.第四步:设置字符集;
5.第五步:准备SQL语句;
6.第六步:发送SQL语句;
7. 第七步:判断是否执行正常或者遍历数据,
8.第八步:关闭数据库;
9.其他:显示服务器信息函数
一. PHP操作mysql数据库环境准备
1.查看PHP配置(开发)环境信息;
<?php
phpinfo();
?>
2.检查是否有mysqli这个扩展模块,若没有看到mysqli扩展,打开php.ini文件,将php_mysqli.dll打开即可;
3.从PHP7开始默认不再支持mysql扩展,即不再支持mysql_*系列函数;请使用mysqli连接数据库;mysqli即支持php5也支持php7。
二. PHP数据库连接步骤
1.第一步:连接数据库服务器;
类型 | 说明 |
函数 | mysqli_connect |
功能 | 连接到mysql数据库服务器 |
参数1 | 主机 |
参数2 | 数据库服务器登陆名 |
参数3 | 密码 |
参数4 | 数据库的名称 |
参数5 | 数据库服务器端口不填默认3306 |
若参数4,数据库名称在此步已填并择,不需要执行第三步。
2.第二步:判断错误;
类型 | 说明 |
函数 | mysqli_errno |
功能 | 返回连接错误号,无错误返回0 |
参数1 | 传入mysqli_connect返回的资源 |
类型 | 说明 |
函数 | mysqli_error |
功能 | 返回连接错误字符串 |
参数1 | 传入mysqli_connect返回的资源 |
3.第三步:选择数据库;
类型 | 说明 |
函数 | mysqli_select_db |
功能 | 选择本连接中的数据库 |
参数1 | 传入mysqli_connect返回的资源 |
参数2 | 需要连接的数据库名 |
若在第一步已填数据库,不需要更换成其他数据库,则不需要执行第三步。
4.第四步:设置字符集;
类型 | 说明 |
函数 | mysqli_set_charset |
功能 | 设置与mysql服力器连接,结果,校验字符集 |
参数1 | 传入mysqli_connect返回的资源 |
参数2 | 字符集类型 |
5.第五步:准备SQL语句;
其实就是一个SQL语句的字符串
eg:
<?php
$sql = "insert into user(username,password) values('$username','$password')";
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
// some code
?>
我们通常要把变量赋值在SQL语句中使用。可是变量或者SQL语句出错了,非常不好排查。如果在执行此步的时候报错了,我们可以把SQL语句打印出来,粘贴到phpMyAdmin或者相关工具中。排错时,如果执行成功就说明不是SQL语句的问题。如果执行失败,请仔细检查SQL语句。
6.第六步:发送SQL语句;
类型 | 说明 |
函数 | mysqli_query |
功能 | 发送SQL语句 |
参数1 | 传入mysqli_connect返回的资源 |
参数2 | 传入发送的SQL语句 |
SQL语句准备完成,需要通过mysqli_query将SQL语句发送给MySQL服务器。
MySQL服务器会执行发送过来的SQL语句进行执行。
7. 第七步:判断是否执行正常或者遍历数据,
读取
第6步中,发送的是select类别的语句,通常需要将结果输出显示出来。就需要用到遍历显示数据的函数。
类型 | 说明 |
函数 | mysqli_fetch_array |
功能 | 得到result结果集中的数据,返回数组进行便利 |
参数1 | 传入查询出来的结果变量 |
参数2 | 传入MYSQLI_NUM返回索引数组,MYSQLI_ASSOC返回关联数组,MYSQLI_BOTH返回索引和关联 |
类型 | 说明 |
函数 | mysqli_fetch_assoc |
功能 | 得到result结果集中的数据,返回关联数组进行便利 |
参数1 | 传入查询出来的结果变量 |
类型 | 说明 |
函数 | mysqli_fetch_row |
功能 | 得到result结果集中的数据,返回索引数组进行便利 |
参数1 | 传入查询出来的结果变量 |
类型 | 说明 |
函数 | mysqli_fetch_object |
功能 | 得到result结果集中的数据,返回对象进行遍历 |
参数1 | 传入查询出来的结果变量 |
类型 | 说明 |
函数 | mysqli_num_rows |
功能 | 返回查询出来的结果总数 |
参数1 | 传入查询出来的结果变量 |
类型 | 说明 |
函数 | mysqli_num_rows |
功能 | 返回查询出来的结果总数 |
参数1 | 传入查询出来的结果变量 |
注 | 实际工作中用得非常少,了解 |
写入
第6步中,如果发送的是insert的语句,通常需要得到是否执行成功,或者同时拿到自增的ID。
类型 | 说明 |
函数 | mysqli_fetch_field |
功能 | 遍历数据行 |
参数1 | 传入查询出来的结果变量 |
修改和删除
第6步中,如果发送的是update和delete类别的语句。只需要判断是否执行成功即可。
8.第八步:关闭数据库;
类型 | 说明 |
函数 | mysqli_close |
功能 | 关闭数据库连接 |
参数1 | 传入mysqli_connect返回的资源 |
数据库连接是一个资源类型。凡是涉及到数资源类型的有打开就有关闭。这样能够保证PHP更高效的处理和回收资源。
因此,数据库连接成功后,不需要使用的时候。我们可以关闭这个连接。
9.其他:显示服务器信息函数
类型 | 说明 |
函数 | mysqli_get_server_info |
功能 | 返回服务器信息 |
参数1 | 传入mysqli_connect返回的资源 |
类型 | 说明 |
函数 | mysqli_get_server_version |
功能 | 返回服务器版本 |
参数1 | 传入mysqli_connect返回的资源 |
注意:
mysqli只学过程化的方法即可。在面向对象阶段实际工作中完全抛弃了mysqli的对象用法,而是使用的是PDO对象连接数据库的方式。