前端PHP入门-033-连接数据库-天龙八步
php检查MySQL的支持是否开启?
若没有看到mysqli扩展在windows服务器下,打开php.ini文件,将php_mysqli.dll打开即可!
注意:
从PHP7开始默认不再支持mysql扩展,即不再支持mysql_*系列函数。请使用mysqli连接数据库。
mysqli即支持php5也支持php7。
数据库连接天龙八步
第一步: 连接数据库服务器
| 类型 | 说明 |
|---|---|
| 函数 | 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 | 字符集类型 |
第五步: 准备SQL语句
其实就是一个SQL语句的字符串。
例如:
sql="insertintouser(username,password)values(′" role="presentation" style="position: relative;">sql="insertintouser(username,password)values(′sql="insertintouser(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返回的资源 |
注意:PDO的连接方式才是王道
mysqli只学过程化的方法即可。在面向对象阶段实际工作中完全抛弃了mysqli的对象用法,而是使用的是PDO对象连接数据库的方式。
前端PHP入门-033-连接数据库-天龙八步的更多相关文章
- MySQL原生PHP操作-天龙八步
<?php //1.第一步[建立连接] $conn = mysqli_connect('localhost','root','123456') or die('数据库连接失败!'); //2.第 ...
- 前端基础:”天龙八步“细说浏览器输入URL后发生了什么
参考:https://www.xuecaijie.com/it/157.html#1Q64p5DeC8dKFF 本文摘要: 1.DNS域名解析: 2.建立TCP连接: 3.发送HTTP请求: 4.服务 ...
- 天龙八步"细说浏览器输入URL后发生了什么
本文摘要: 1.DNS域名解析: 2.建立TCP连接: 3.发送HTTP请求: 4.服务器处理请求: 5.返回响应结果: 6.关闭TCP连接: 7.浏览器解析HTML: 8.浏览器布局渲染: 总结 输 ...
- “天龙八步”细说浏览器输入URL后发生了什么
本文摘要: 1.DNS域名解析: 2.建立TCP连接: 3.发送HTTP请求: 4.服务器处理请求: 5.返回响应结果: 6.关闭TCP连接: 7.浏览器解析HTML: 8.浏览器布局渲染: 总结 输 ...
- Web前端小白入门指迷
前注:这篇文章首发于我自己创办的服务于校园的技术分享 [西邮 Upper -- 004]Web前端小白入门指迷,写得很用心也就发在这里. 大前端之旅 大前端有很多种,Shell 前端,客户端前端,Ap ...
- openresty 前端开发入门五之Mysql篇
openresty 前端开发入门五之Mysql篇 这章主要演示怎么通过lua连接mysql,并根据用户输入的name从mysql获取数据,并返回给用户 操作mysql主要用到了lua-resty-my ...
- 每天成长一点---WEB前端学习入门笔记
WEB前端学习入门笔记 从今天开始,本人就要学习WEB前端了. 经过老师的建议,说到他每天都会记录下来新的知识点,每天都是在围绕着这些问题来度过,很有必要每天抽出半个小时来写一个知识总结,及时对一天工 ...
- 使用 gulp 搭建前端环境入门篇(转载)
本文转载自: 使用 gulp 搭建前端环境入门篇
- Bootstrap入门(二十八)JS插件5:工具提醒
Bootstrap入门(二十八)JS插件5:工具提醒 工具提示在使用过程中比较常见,但是实现起来有些麻烦,而bootstrap则很好地解决了这个问题. 我们来写一个简单的实例 先引入CSS文件和JS文 ...
随机推荐
- ADAS芯片解决方案汇总
ADAS(高级辅助驾驶系统),是指利用安装于车上各式各样的传感器,在第一时间收集车内的环境数据,进行静.动态物体的辨识.侦测与追踪等技术上的处理,从而能够让驾驶者在最快的时间察觉可能发生的危险. 在过 ...
- “Hello World!”团队第六周的第五次会议
今天是我们团队“Hello World!”团队第六周召开的第五次会议.博客内容: 一.会议时间 二.会议地点 三.会议成员 四.会议内容 五.todo list 六.会议照片 七.燃尽图 八.代码 一 ...
- Alpha - Postmortem
Alpha - Postmortem NewTeam 2017/11/18 目录 设想和目标 计划 资源 变更管理 设计/实现 测试/发布 团队角色.管理.合作 总结 设想和目标 返回目录 1. 软件 ...
- freemarker中空值 null的处理 ?exists ?if_exists ?default(“”)
exists:由空值测试运算符的引入,它被废弃了. exp1?exists 和 exp1??是一样的, ( exp1)?exists 和(exp1)??也是一样的. if_exists:由默认值运算符 ...
- 【Nginx】均衡负载权重模式实现session数据同步
思路:把session存放到一个公共redis服务器上 每次浏览器请求服务端都会带上cookie,因为使用的是权重负载均衡方案,因此nginx反向代理服务器会把请求发放到不同的服务端,服务端用cook ...
- Sql Server统计报表案例
场景:查询人员指定年月工作量信息 USE [Test] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER procedure [dbo ...
- 【loj6041】「雅礼集训 2017 Day7」事情的相似度 后缀自动机+STL-set+启发式合并+离线+扫描线+树状数组
题目描述 给你一个长度为 $n$ 的01串,$m$ 次询问,每次询问给出 $l$ .$r$ ,求从 $[l,r]$ 中选出两个不同的前缀的最长公共后缀长度的最大值. $n,m\le 10^5$ 题解 ...
- 【JavaScript&jQuery】省市区三级联动
HTML: <%@page import="com.mysql.jdbc.Connection"%> <%@ page language="java&q ...
- 【一】shiro入门 之 Shiro简介
Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE 环境,也可以用在JavaEE 环境.Shiro 可以帮助我们完成:认证.授权.加密.会话管理.与Web 集成.缓存等.这不就是 ...
- 洛谷 P2763 试题库问题(网络流24题之一)
题目描述 «问题描述: 假设一个试题库中有n道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性.现要从题库中抽取m 道题组成试卷.并要求试卷包含指定类型的试题.试设计一个满足要求的组卷算法. ...