注册 登录

清河洛

mysqli面向对象的使用①

qingheluo2016-12-16清河洛279
一、创建、选择、设置和断开mysql连接1、创建一个mysqli的对象$_mysqli=new mysqli(); 2、连接MySql使用的主机、用户名、密码和数据库名、使用端口号$_mysqli->connect($host,$username,$password,$db_name,$port=3306); 把第一步和第二步结合,直接创建一个带连接参数的mysqli对象(构造方法):$_mysqli=new mysqli($host,$username,$password,$db_name,$port=3306); 单独设置数据库名称$_mysqli ->select_db...

一、创建、选择、设置和断开mysql连接

1、创建一个mysqli的对象

$_mysqli=new mysqli();

2、连接MySql使用的主机、用户名、密码和数据库名、使用端口号

$_mysqli->connect($host,$username,$password,$db_name,$port=3306);

把第一步和第二步结合,直接创建一个带连接参数的mysqli对象(构造方法):

$_mysqli=new mysqli($host,$username,$password,$db_name,$port=3306);

单独设置数据库名称

$_mysqli ->select_db('db_name');

设置编码

$_mysqli->set_charset("utf8");

断开MySQL的连接

$_mysqli->close();

二、错误的处理

如果数据库的信息填写错误,那么创建$_mysqli对象时会失败,此时mysqli类里面的所有方法和属性都是不能使用的,所以如果是数据库连接错误的话,只能使用函数方式来捕获错误信息

mysqli_connect_errno() 函数返回连接数据库返回的错误号。
Mysqli_connect_error() 函数返回连接数据库返回的错误信息。

当数据库连接信息正确时,就可以使用mysqli类里面的方法和属性了,那么在连接以后的操作中如果出现了错误那么可以使用errno属性和error属性来捕获错误信息了

errno 属性返回数据库操作时的错误号。
error 属性返回数据库操作时的错误信息。

三、数据库的操作

1. 执行sql语句并获取结果集

query($sql)

$sql="SELECT * FROM db_name";
$result=$_mysqli->query($sql);
    // 执行sql语句把结果集赋给$_result

$result ->free();

释放查询内存 ( 销毁 资源句柄)
等价的还有close()、free_result()方法,功能用法是完全相同的

2. 解析结果集

一旦执行了sql语句并获取结果集,就可以解析获取到的结果行了

可以使用多个方法来获取各行中的字段

方法1:将结果集放到对象中

由于可能会使用mysqli的面向对象的语法,所以可以采用面向对象的方式管理结果集

fetch_object() :将结果集的第一条信息包装成对象

$row = $_result ->fetch_object();
echo $row->username;// 输出对象中的一个字段(属性)

fetch_object()方法运行一次指针就下移一次,再次运行此方法会获取到第二条数据

while (!! $row = $result ->fetch_object()) {
    echo $row->username;
}

方法2:使用索引数组和关联数组

fetch_array():将结果集中当前数据指针处的一条信息包装成数组 ( 索引 + 关联 )

$row = $result ->fetch_array();

echo $row[3]; // 以索引数组形式获取值
echo $row['name']; //以关联数据形式获取值

fetch_array():将结果集中当前数据指针处的一条信息包装成索引数组

$row = $result ->fetch_row();
echo $row [3];

fetch_assoc():将结果集中当前数据指针处的一条信息包装成关联数组

$row = $result ->fetch_assoc();
echo $row [ 'username' ];

fetch_array()、fetch_row()、fetch_assoc()都是操作结果集的一条信息,运行一次数据指针就下移一行

3. 确定操作返回结果集的行和受影响的行

结果集的num_rows属性

获取SELECT查询返回的行数
echo $_result ->num_rows;

mysqli对象的affected_rows属性

获取受INSERT 、UPDATE或DELET查询影响的行数
获取SELECT查询返回的行数

echo $mysqli->affected_rows;

4. 移动指针的操作和获取字段

结果集的field_coun属性:获取每条结果集信息中多少个字段(多少列)

fetch_field()

获取结果集中当前字段指针处的一条信息集合对象(结果集中的一列)
再此运行此方法会将字段指针向后移动一列并返回信息集合对象
name属性为该字段的名称

fetch_fields()

一次性取得所有字段信息集合对象组成的数组

$_result ->data_seek(5);

移动数据指针,数字从0开始

$_result ->field_seek(2);

移动字段指针,数字从0开始


网址导航