我们为大家将数据库连接整理成了最重要的8个步骤,我戏称它为:“数据库连接天龙八步”。 这八个步骤如下,并且将每一步使用的函数都做了说明: ##第一步: 连接数据库服务器 | 类型 | 说明 | | -- | -- | | 函数 | mysqli_connect | | 功能 | 连接到mysql数据库服务器 | | 参数1 | 主机 | | 参数2 | 数据库服务器登陆名 | | 参数3 | 密码 | | 参数4 | 数据库的名称 | | 参数5 | 数据库服务器端口不填默认3306 | 若参数4,数据库名称在此步已填,则不需要再执行第三步。 ##第二步: 判断错误 | 类型 | 说明 | | -- | -- | | 函数 | mysqli_errno | | 功能 | 返回连接错误号,无错误返回0 | | 参数1 | 传入mysqli_connect返回的资源 | | 类型 | 说明 | | -- | -- | | 函数 | mysqli_error | | 功能 | 返回连接错误字符串 | | 参数1 | 传入mysqli_connect返回的资源 | ##第三步: 选择数据库 | 类型 | 说明 | | -- | -- | | 函数 | mysqli_select_db | | 功能 | 选择本连接中的数据库 | | 参数1 | 传入mysqli_connect返回的资源 | | 参数2 | 需要连接的数据库名| 若在第一步已填数据库,不需要更换成其他数据库,则不需要执行第三步。 ##第四步: 设置字符集 | 类型 | 说明 | | -- | -- | | 函数 | mysqli_set_charset | | 功能 | 设置与mysql服力器连接,结果,校验字符集 | | 参数1 | 传入mysqli_connect返回的资源 | | 参数2 | 字符集类型| 更多注意项,请关注本书《13.6 数据显示乱码终极解决方案》 ##第五步: 准备SQL语句 其实就是一个SQL语句的字符串。 例如: > $sql = "insert into user(username,password) values('$username','$password')"; 我们通常要把变量赋值在SQL语句中使用。可是变量或者SQL语句出错了,非常不好排查。 我们根据实际工作经验增加了这一步。 如果在执行此步的时候报错了,我们可以把SQL语句打印出来,粘贴到phpMyAdmin或者相关工具中。 排错时,如果执行成功就说明不是SQL语句的问题。如果执行失败,请仔细检查SQL语句。 ##第六步: 发送SQL语句 | 类型 | 说明 | | -- | -- | | 函数 | mysqli_query | | 功能 | 发送SQL语句 | | 参数1 | 传入mysqli_connect返回的资源 | | 参数2 | 传入发送的SQL语句 | SQL语句准备完成,需要通过mysqli_query将SQL语句发送给MySQL服务器。 MySQL服务器会执行发送过来的SQL语句进行执行。 ##第七步: 判断是否执行正常或者遍历数据 ####读取 第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类别的语句。只需要判断是否执行成功即可。 我们将这些常用函数列出数据表给给大家查看。 ##第八步: 关闭数据库 | 类型 | 说明 | | -- | -- | | 函数 | mysqli_close | | 功能 | 关闭数据库连接| | 参数1 | 传入mysqli_connect返回的资源 | 数据库连接是一个资源类型。我们在之前的章节中讲解资源类型的时候跟大家说过。凡是涉及到数资源类型的有打开就有关闭。这样能够保证PHP更高效的处理和回收资源。 因此,数据库连接成功后,不需要使用的时候。我们可以关闭这个连接。 ##其他:显示服务器信息函数 | 类型 | 说明 | | -- | -- | | 函数 |mysqli_get_server_info | | 功能 | 返回服务器信息| | 参数1 | 传入mysqli_connect返回的资源 | | 类型 | 说明 | | -- | -- | | 函数 |mysqli_get_server_version | | 功能 | 返回服务器版本| | 参数1 | 传入mysqli_connect返回的资源 | *** 注意: mysqli只学过程化的方法即可。在面向对象阶段实际工作中完全抛弃了mysqli的对象用法,而是使用的是PDO对象连接数据库的方式。