PHP教程学习10(下):MySQLi面向对象

学习教程来源于:
PHP中文网教程 MySQLi面向过程
PHP官网PHP手册(简体中文)链接

对象是属性和方法的无序集合
属性是属于对象或类的变量
方法是属于对象或类的函数
面向对象首先要获取对象
MySQLi面向对象重点是掌握各类属性和方法
要注意与MySQL面向过程的区别与联系
学会对各类错误信息进行预判与处理

操作步骤:
1.连接(返回一个mysqli对象)
2.操作(读写)
3.关闭

数据库连接
<?php 
header('content-type=text/html;charset=utf-8');//设置页面html默认字符集为utf-8
$mysqli = new mysqli('主机名称','用户名','密码','数据库');//创建MySQLi对象连接数据库
if ($mysqli->connect_errno) {//检测连接错误
	die('连接失败'.$mysqli->connect_error);//输出错误提示符并中断脚本执行
}
$mysqli->set_charset('utf8');//设置默认客户端字符集为utf8
添加操作
INSERT语句

query()方法:执行SQL语句
affected_rows属性:受影响的记录数
insert_id属性:新添加的记录主键id
errno和error属性:最后一次函数执行的错误信息

$sql = "INSERT INTO `tableName` (`field1`,`field2`...) VALUES ('value1','value2'...)";
if ($mysqli->query($sql)) {
	echo '成功添加了'.$mysqli->affected_rows.'条新增记录,新增id是'.$mysqli->insert_id;
} else {
	echo '添加失败'.$mysqli->errno.':'.$mysqli->error;
}
更新操作

!!!一定要有更新条件,否则会将所有的数据进行更新

UPDATE语句

query()方法:执行SQL语句
affected_rows属性:受影响的记录数
errno和error属性:最后执行的错误信息

$sql = "UPDATE `表名` SET `字段名1`='值1',`字段名2`='值2'...WHERE '条件表达式'";
if ($mysqli->query($sql)) {
	echo '成功更新了'.$mysqli->affected_rows.'条记录';
} else {
	echo '更新失败'.$mysqli->errno.':'.$mysqli->error;
}
DELETE语句

== !!!注明条件==

query()方法:执行SQL语句
affected_rows属性:受影响的记录数
errno和erro属性:最后执行的错误信息

$sql = "DELETE FROM `表名` WHERE `id`=4";
if ($mysqli->query($sql)) {
	echo '成功删除了'.$mysqli->affected_rows.'条记录';
} else {
	echo '删除失败'.$mysqli->errno.':'.$mysqli->error;
}
查询SELECT

结果集对象:$mysqli_result;
根据查询目标分为:字段和记录二部分
查询结束后需要释放结果集对象

单条记录查询:

将结果集中的一条记录解析到PHP数组中,并自动解析到下一条记录

$mysqli_result->fetch_array();

用来返回查询结果的索引或者关联部分

$mysqli_result->fetch_row();
$mysqli_result->fetch_assoc();

将查询结果对象返回

$mysqli_result->fetch_object();

在结果集中巡航,可以自动跳转到结果集的任意位置进行查询

$mysqli_result->data_seek();

$sql = "SELECT `字段列表` FROM `表名` [WHERE 条件表达式]";
if ($mysqli_result=$mysqli->query($sql)) {
	while($row=$mysqli_result->fetch_array(MYSQL_ASSOC)){
		echo '<pre>';
		print_r($row);
	}
}
全部记录
$mysqli_result->fetch_all(常量)

常量MYSQLI_NUM:索引部分
常量MYSQLI_ASSOC:关联部分
常量MYSQLI_BOTH:索引+关联

$sql = "SELECT `字段列表` FROM `表名` [WHERE 条件表达式]";
if ($mysqli_result = mysqli->query($sql)) {
	$rows = $mysqli_result->fetch_all(MYSQLI_ASSOC);
	echo '<pre>';
	print_r($rows);//二维数组
}
字段遍历

每次从结果集字段列表中返回一个字段的信息,并且以对象的形式返回

$mysqli_result->fetch_field()

$mysqli->current_field:当前字段偏移量,从0开始
$mysqli->field_seek():移动字段指针
$mysqli->field_count:字段数量

获取字段信息

$mysqli_result->fetch_field();//返回值是对象

字段遍历快捷方法

$mysqli_result->fetch_fields():获取全部字段
返回的是一个对象数组,数组中的每一个元素,对于一个字段信息;

$mysqli_fetch_field_direct($index):获取指定字段
返回上面对象数组中的某一个元素,即聚义的某一个字段的信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值