面向对象的mysqli基础

eve 2016-12-29

mysqli作为PHP扩展库的一部分是一个很好的操作数据库的接口。mysqli的操作方式有两种,一种是面向过程的,另一类是面向对象的。本文主要讲的是面向对象的mysqli操作,主要是作为一个引子,更多的东西希望能多多参考php官方文档,看完本文再参考一下文档,相信对mysqli的操作会容易上手

mysqli的基本操作过程:

<?php
// 连接数据库
$mysqli = new mysqli('localhost', 'root', ''); 

/*
选择数据库,也可以在mysqli的构造函数的第四个参数处给出
*/
$mysqli->select_db('mydb'); 

//设置字符集
$mysqli->set_charset('utf8');

//执行操作
$mysqli->query('SELECT * FROM users');
$result = $mysqli->fetch_all();

//关闭连接
$mysqli->close();

这儿用new新建了一个mysqli对象,传入数据库连接的相关参数就可以获得一个mysqli对象。可以通过$mysqli->connect_errno判断连接是否有误,具体错误信息通过$mysqli->connet_error得到。
连接数据库之后还要先选择数据库,这儿使用的是$mysqli->select-db('mydb')。然后可以设置一下字符集
选择好数据库之后就可以对数据库进行操作了,采用mysqli对象的query方法可以执行MySQL语句。这儿需要注意的是:

对于一般的sql语句: SELECT/DESC/DESCRIBE/SHOW/EXPLAN 执行成功返回mysqli_result对象,执行失败返回false。对于其他sql语句的执行,执行成功返回true,否则返回false。(不包括预处理语句)

所以常规的insert / delete / update 等都会返回true或者false来表示sql语句是否成功执行。
执行完sql语句后可以通过mysqli对象的insert_id属性来查看刚刚insert进入表里面的数据的自增长字段的值。使用affected_rows属性查看影响的数据行数,errorerrno属性查看错误信息

$mysqli->query("INSERT INTO users(name, pass) VALUES ('good' , 'nice')");
echo $mysqli->insert_id;// 插入数据的自增长数据的值

echo $mysqli->affected_rows; // 影响的记录条数

通过query方法执行的select语句会返回一个mysqli_result对象,这个对象就是查询的结果集对象,可以使用$mysqli_result->fetch_all()等方法获取到查询的结果。
本文只是一个引子,更具体的关于mysqli对象的使用方法可以在PHP官方文档进行查找

相关推荐