前 言
php
php中的数据库扩展mysql语法--本篇学习都是通过使用数字天堂的HBuider开发环境,连接mysql数据.介绍php连接mysql数据库的代码与函数。
本篇学习主要有两个部分:
①【面向过程】
②【面向对象】
内容大同小异:
一、连接数据库
二、检测数据库连接是否成功--连接数据库同时判断
三、选择数据库
四、编写SQL语句
五、执行SQL语句--代码执行之后,返回的结果集
六、处理结果集的一些函数
七、释放查询资源结果集
八、关闭数据库连接
以下所有代码HBuider中建立PHP文件实施。
1、面向过程 |
① 连接数据库 :
连接数据库 使用:mysqli_connect
参数: ① 主机地址 ② mysql用户名 ③ mysql密码 ④ 选择连接的数据库 ⑤ 端口号
返回: 如果连接成功,返回资源类型的表示符号
如果连接失败,则返回false
如果我们与MYSQL建立的链接不止一条,那么以后操作数据库的各种函数都必须传入返回的标识符号;
如果我们与MYSQL建立的连接只有一条,那么以后操作数据库的各种函数就不必传入这个表示符号
//$conn = mysqli_connect("xxx.0.0.x","root","","mydb");//密码为零可以省略
$conn = mysqli_connect("xxx.0.0.x","root","1"); 这行代码在所有代码之前的必须存在。
图片:↓↓↓↓↓↓↓↓↓↓
图 1.1 Navicat Premium中的mysql主机中的mydb数据库
② 检测数据库连接是否成功
mysqli_connect_errno():返回上次连接数据库的错误号,连接成功返回0
mysqli_connect_error():返回上次连接数据库的错误信息
代码如下 ↓↓↓
if(mysqli_connect_errno()){
die("lalalala:".mysqli_connect_error());
}
var_dump($conn);
打印的效果图片:↓↓↓↓↓↓↓↓↓↓
//连接数据库同时判断
$conn = mysqli_connect("127.0.0.1","root") or die("lalalala:".mysqli_connect_error()); ;
③ 选择数据库:mysqli_select_db
参数: ① 资源标识符 ② 选择的数据库名称
返回: 连接成功返回true,链接失败返回false
如果修改数据库成功,则西苑标识符中的数据库就会发生变更
如果修改失败,而没有通过代码终止操作,则后续代码可以使用原数据库继续执行。
代码如下:
// ↓var_dump(mysqli_select_db($conn,"mydb1") or die("数据库选择失败") )
效果图如下 ↓↓↓↓↓↓↓↓↓
var_dump(mysqli_select_db($conn,"mydb") or die("数据库选择失败"));
效果图如下 ↓↓↓↓↓↓↓↓↓
④ 编写SQL语句
mysql语句中的增删改查
⑤ 执行SQL语句
如果是增、删、改,将返回布尔型的是否成功;
如果是查询,返回资源结果集
如果查询失败,返回false
图片:↓↓↓↓↓↓↓↓↓
图片 1.2 数据库mydb中的表tb1中的表格内容
代码如下:
//编写SQL语句--查询tb1表单中的所有数据
$sql = "select * from tb1";
$set = mysqli_query($conn, $sql);
var_dump($set);
效果图:
图 1.3 $set返回的结果集
⑥ 处理结果集的函数(一)
↓↓承接上文↓↓
//DQL时:返回资源结果集中的行数
var_dump(mysqli_num_rows($set));
效果图:
↓↓承接上文↓↓
//DQL时:返回资源结果集中的行数
var_dump(mysqli_num_rows($set));
效果图:
//DQL时:返回资源结果集中的字段(列)
var_dump(mysqli_num_fields($set));
效果图:
⑦ 处理结果集的函数(二)
处理结果集,返回关联数组和索引数组
mysqli_fetch_array()
参数 ① :需要处理的结果集
参数 ② :返回哪种数组格式
MYSQL_ASSOC 关联
MYSQL_NUM 索引
MYSQL_BOTH 默认,同时产生两种数组
处理结果集,返回关联数组和索引数组
mysqli_fetch_array()
参数 ① :需要处理的结果集
参数 ② :返回哪种数组格式
MYSQL_ASSOC 关联
MYSQL_NUM 索引
MYSQL_BOTH 默认,同时产生两种数组
代码如下(承接上文):
var_dump(mysqli_fetch_array($set));
效果图:
同时打印关联数组和索引数组
var_dump(mysqli_fetch_array($set));
效果图:
同时打印关联数组和索引数组
代码如下(承接上文):
var_dump(mysqli_fetch_array($set,MYSQL_ASSOC));
效果图:
//下方代码也返回关联数组同上图一样↑
var_dump(mysqli_fetch_assoc($set));
var_dump(mysqli_fetch_array($set,MYSQL_ASSOC));
效果图:
//下方代码也返回关联数组同上图一样↑
var_dump(mysqli_fetch_assoc($set));
代码如下(承接上文):
var_dump(mysqli_fetch_array($set,MYSQL_ASSOC));
效果图:
//下方代码也返回索引数组同上图一样↑
var_dump(mysqli_fetch_row($set));
var_dump(mysqli_fetch_array($set,MYSQL_ASSOC));
效果图:
//下方代码也返回索引数组同上图一样↑
var_dump(mysqli_fetch_row($set));
⑧ 处理结果集的函数(三)
// 结果集复位到最开始
// mysqli_data_seek($set,0)
代码如下:
// 结果集复位到最开始
mysqli_data_seek($set,0);
//打印表单第一组数据
var_dump(mysqli_fetch_row($set));
//打印表单第二组数据
var_dump(mysqli_fetch_row($set));
//释放查询资源结果集
mysqli_free_result($set);
//关闭数据库链接
mysqli_close($conn);
mysqli_free_result($set);
//关闭数据库链接
mysqli_close($conn);
1 <?php 2 header("Content-type:text/html;charset=utf-8"); 3 4 /*连接数据库 使用:mysqli_connect 5 参数: ① 主机地址 ② mysql用户名 ③ mysql密码 ④ 选择连接的数据库 ⑤ 端口号 6 返回: 如果连接成功,返回资源类型的表示符号 7 如果连接失败,则返回false 8 * 如果我们与MYSQL建立的链接不止一条,那么以后操作数据库的各种函数都必须传入返回的标识符号; 9 * 如果我们与MYSQL建立的连接只有一条,那么以后操作数据库的各种函数就不必传入这个表示符号 10 * 11 * 12 */ 13 $conn = mysqli_connect("127.0.0.1","root","","mydb");//密码为零可以省略 14 //$conn = mysqli_connect("127.0.0.1","root","1"); 15 16 /* 检测数据库连接是否成功 17 * mysqli_connect_errno():返回上次连接数据库的错误号,连接成功返回0 18 * mysqli_connect_error():返回上次连接数据库的错误信息 19 * ↓↓↓ */ 20 21 if(mysqli_connect_errno()){ 22 die("lalalala:".mysqli_connect_error()); 23 } 24 var_dump($conn); 25 26 //连接数据库同时判断 27 $conn = mysqli_connect("127.0.0.1","root") or die("lalalala:".mysqli_connect_error()); ; 28 29 30 31 /* 选择数据库mysqli_select_db 32 * 参数: ① 资源标识符 ② 选择的数据库名称 33 * 返回: 连接成功返回true,链接失败返回false 34 * 35 * 如果修改数据库成功,则西苑标识符中的数据库就会发生变更 36 * 如果修改失败,而没有通过代码终止操作,则后续代码可以使用原数据库继续执行。 37 * */ 38 //var_dump(mysqli_select_db($conn,"mydb1") or die("数据库选择失败") ) 39 40 var_dump(mysqli_select_db($conn,"mydb") or die("数据库选择失败")); 41 42 43 /* 44 * 设置字符集编码格式mysqli_set_charset() 45 * 只能设置为utf8而不是utf-8 46 * */ 47 mysqli_set_charset($conn,"utf8") or die("数据库编码集设置失败"); 48 49 /* 编写SQL语句 50 * */ 51 $sql = "select * from tb1"; 52 /*<<<str 53 INSERT INTO tb1 (username,age,sex) VALUES ("张三","122","女"); 54 str; 55 * */ 56 /* 执行SQL语句 57 * 如果是增、删、改,将返回布尔型的是否成功; 58 * 如果是查询,返回资源结果集 59 * 60 * 如果查询失败,返回false 61 * */ 62 $set = mysqli_query($conn, $sql); 63 64 //DML时,返回上一次操作时,受影响的行数 65 //var_dump(mysqli_affected_rows($conn)) 66 67 //执行插入语句时,返回上次最新插入的主键ID 68 //var_dump(mysqli_insert_id($conn)); 69 70 var_dump($set); 71 72 //DQL时:返回资源结果集中的行数 73 var_dump(mysqli_num_rows($set)); 74 //DQL时:返回资源结果集中的字段(列) 75 var_dump(mysqli_num_fields($set)); 76 77 /* 处理结果集,返回关联数组和索引数组 78 * mysqli_fetch_array() 79 * 参数 ① :需要处理的结果集 80 * 参数 ② :返回哪种数组格式 81 * MYSQL_ASSOC 关联 82 * MYSQL_NUM 索引 83 * MYSQL_BOTH 默认,同时产生两种数组 84 * */ 85 86 var_dump(mysqli_fetch_array($set)); 87 var_dump(mysqli_fetch_array($set,MYSQL_ASSOC)); 88 var_dump(mysqli_fetch_array($set,MYSQL_NUM)); 89 90 91 //返回关联数组 92 var_dump(mysqli_fetch_assoc($set)); 93 //返回索引数组 94 var_dump(mysqli_fetch_row($set)); 95 //返回对象 96 var_dump(mysqli_fetch_object($set)); 97 var_dump(mysqli_fetch_object($set)); 98 99 100 101 /* mysqli_data_seek($set,0) 102 * 结果集复位到最开始 103 * */ 104 mysqli_data_seek($set,0); 105 var_dump(mysqli_fetch_row($set)); 106 var_dump(mysqli_fetch_row($set)); 107 108 /*返回结果集每一列的字段信息。(字段名、表明、数据库名、字段类型、长度等……) */ 109 //var_dump(mysqli_fetch_field($set)); 110 111 //释放查询资源结果集 112 mysqli_free_result($set); 113 114 //关闭数据库链接 115 mysqli_close($conn); 116 117 ?>
2、面向对象 |
① 连接数据库
$conn = @new mysqli("xxx.0.0.x","root","","mydb");
② 返回连接错误
$conn->connect_errno
③ 返回连接信息
$conn->connect_error
④ 选择数据库
$conn->select_db("mydb")
⑤ 设置字符集编码
$conn->set_charset("utf8")
代码如下:
//如果出现错误则在页面打印如下:比如在没有mydb1把上表中的mydb改为mydb1,在页面就会出现如下样式
1 //连接数据库 2 $conn = @new mysqli("127.0.0.1","root","","mydb"); 3 4 //↓查看连接数据库的返回内容 5 // var_dump ($conn) 6 7 if($conn->connect_errno){//返回连接错误号。 8 //↓返回连接错误信息 9 die("连接失败".$conn->connect_error); 10 } 11 //↓选择数据库 12 $conn->select_db("mydb") or die("选择数据库失败:".$conn->error);
//↓设置字符集编码
$conn->set_charset("utf8") or die("设置字符集失败:".$conn->error); //↑同上
1 //准备sql语句 2 $sql = <<<sql 3 select * from tb1; 4 sql; 5 6 // 执行SQL语句,返回结果集或者布尔类型true/false 7 $res = $conn->query($sql); 8 var_dump($res); 9 10 // 返回结果集中的字段数 11 var_dump($res->field_count); 12 // 返回结果集中的总行数 13 var_dump($res->num_rows); 14 15 // 返回关联数组和索引数组 16 var_dump($res->fetch_array()); 17 // 返回索引数组 18 var_dump($res->fetch_row()); 19 // 返回关联数组 20 var_dump($res->fetch_assoc()); 21 // 返回一个对象 22 var_dump($res->fetch_object()); 23 24 // 将结果集指针移到指定位置 25 $res->data_seek(0); 26 27 28 // 返回结果集中的一个字段,并将指针移到下一列 29 var_dump($res->fetch_field()); 30 // 直接返回结果集中的所有字段 31 var_dump($res->fetch_fields()); 32 33 34 //释放结果集资源 35 $res->close();// $res->free(); 36 //关闭数据库连接 37 $conn->close();
学习时候的笔记,可能会有一些错误的地方,欢迎各位的批评指点。
反思,复盘,每天收获一点---------------------期待更好的自己