MySQLi基于面向对象的编程
2016-02-10 23:55
731 查看
mysqli在windows上,对于PHP 5.3或更新版本,mysqli扩展默认开启,对于PHP 5.0 5.1 5.2,mysqli扩展默认并不会开启,因此php.ini中php_mysqli.dll这个DLL 必须开启。
MySQLi基于面向过程的编程和面向对象的编程是相对的,其中使用到的方法都是可以类比的。
mysqli面向过程的编程:http://blog.csdn.net/koastal/article/details/50650496
以上的操作都是使用了mysqli类的属性或者方法。
![](http://img.blog.csdn.net/20160211221942680)
然而,对于查询语句,我们取出数据还需要使用mysqli_result类的属性和方法。
![](http://img.blog.csdn.net/20160211222037181)
MySQLi基于面向过程的编程和面向对象的编程是相对的,其中使用到的方法都是可以类比的。
mysqli面向过程的编程:http://blog.csdn.net/koastal/article/details/50650496
连接数据库
header("Content-type:text/html;charset=utf-8"); $mysqli = new mysqli("localhost", "root", "", "test"); if($mysqli->connect_errno){ //连接成功errno应该为0 die('Connect Error:'.$mysqli->connect_error); }
设置字符编码
$mysqli->set_charset('utf8');
插入记录
$query = "INSERT INTO staff(id,name,job) VALUES('','naruto','保安队长')"; $res = $mysqli->query($query); //插入成功返回真,插入失败返回假 if($res){ //插入成功则输出自增主键的id echo "AUTO_INCREMENT:".$mysqli->insert_id; echo "<hr/>"; echo "AFFECTED ROWS:".$mysqli->affected_rows; }else{ //插入失败则输出错误编号和错误信息 echo "Error:"; echo $mysqli->errno.":".$mysqli->error; }
更新记录
$query = "UPDATE staff SET id = id+10"; $res = $mysqli->query($query);//插入成功返回真,插入失败返回假 if($res){ //插入成功则输出自增主键的id echo "AUTO_INCREMENT:".$mysqli->insert_id; echo "<hr/>"; echo "AFFECTED ROWS:".$mysqli->affected_rows; }else{ //插入失败则输出错误编号和错误信息 echo "Error:"; echo $mysqli->errno.":".$mysqli->error; }
删除记录
$query = "DELETE FROM staff WHERE id = 24"; $res = $mysqli->query($query);//插入成功返回真,插入失败返回假 if($res){ //插入成功则输出自增主键的id echo "AUTO_INCREMENT:".$mysqli->insert_id; echo "<hr/>"; echo "AFFECTED ROWS:".$mysqli->affected_rows; }else{ //插入失败则输出错误编号和错误信息 echo "Error:"; echo $mysqli->errno.":".$mysqli->error; }
以上的操作都是使用了mysqli类的属性或者方法。
然而,对于查询语句,我们取出数据还需要使用mysqli_result类的属性和方法。
mysqli_result类用于保存
mysqli->query()执行查询操作得到的结果集,可以从结果集中取出数据,不再使用结果集之后要使用
mysqli_result->close()语句释放结果集。
查询一条记录
函数名 | 说明 |
---|---|
$mysqli_result->fetch_assoc() | 查询到的一条数据以关联数组的形式返回 |
$mysqli_result->fetch_row() | 查询到的一条数据以索引数组的形式返回 |
$mysqli_result->fetch_object() | 查询到的一条数据以对象属性的形式返回 |
$mysqli_result->fetch_array() | 查询到的一条数据以索引数组和关联数组的混合形式返回 |
$mysqli_result->fetch_array(MYSQLI_BOTH) | 查询到的一条数据以索引数组和关联数组的混合形式返回 |
$mysqli_result->fetch_array(MYSQLI_ASSOC) | 查询到的一条数据以关联数组的混合形式返回 |
$mysqli_result->fetch_array(MYSQLI_ROW) | 查询到的一条数据以索引数组的混合形式返回 |
$query = "SELECT * FROM staff WHERE id = 25"; $mysqli_result = $mysqli->query($query);//获取查询结果集 $row = $mysqli_result->fetch_row(); //使用查询结果集 $mysqli_result->close(); //释放查询结果集 var_dump($row);
查询多条记录
函数名 | 说明 |
---|---|
$mysqli_result->fetch_all() | 查询到的所有数据以索引数组和关联数组的混合形式返回 |
$mysqli_result->fetch_all(MYSQLI_BOTH) | 查询到的所有数据以索引数组和关联数组的混合形式返回 |
$mysqli_result->fetch_all(MYSQLI_ASSOC) | 查询到的所有数据以关联数组的混合形式返回 |
$mysqli_result->fetch_all(MYSQLI_ROW) | 查询到的所有数据以索引数组的混合形式返回 |
一次取出全部数据
$query = "SELECT * FROM staff"; $mysqli_result = $mysqli->query($query); $rows = $mysqli_result->fetch_all(MYSQLI_ASSOC); $mysqli_result->close(); echo "共".count($rows)."条记录:"; var_dump($rows);
每次取出一条数据
$query = "SELECT * FROM staff"; $mysqli_result = $mysqli->query($query); while($row = $mysqli_result->fetch_array(MYSQLI_ASSOC)){ $rows[] = $row; }; $mysqli_result->close(); echo "共".count($rows)."条记录:"; var_dump($rows);
关闭连接
$mysqli->close();
相关文章推荐
- MySQLi基于面向过程的编程
- MySQL 存储引擎
- MySQL批量删除指定前缀表
- MySQL多实例启停脚本
- mysql多实例实例化数据库
- mysql多实例配置文件
- mysql单表转移数据语句
- mysql表结构表空间和索引的查询
- 【摘】Mysql备份还原数据库之mysqldump实例及参数详细说明
- Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表
- MySQL优化要点
- Mysql主从半同步及双机热备
- mysql主从错误记录跳过
- Mysql数据库系统单元压力和性能基准测试
- mysql数据库密码重置
- 常见Mysql系统参数调整
- MySQL数据备份语句
- mysql LAST_INSERT_ID详解
- mysql获取上一步INSERT操作产生的ID
- MySql远程连接无法打开解决办法