批改状态:合格
老师批语:
MySQLi面向对象实现更新操作
<?php
/**
* 新增操作,简化版
* 刚才的案例发现,如果同时插入多条记录,会产生大量的重复冗余代码
* 我们可以循环来简化
* 更新与删除: update/delete与这个操作流程完全一致,请同学们自己尝试改写
*/
//1.连接数据库
require 'mysqli_connect.php';
//2.准备SQL语句
$sql = "update staff set salary = ? WHERE name = ?;";
//3.创建STMT预处理对象
$stmt = $mysqli->stmt_init();
//4.检测预处理SQL语句
if ($stmt->prepare($sql)) {
//用二维数组来保存要更新的记录
$data[] = ['salary'=>8600,'name'=> '成昆1'];
//绑定参数到预处理SQL语句
$stmt->bind_param('is',$salary,$name);
foreach ($data as $staff) {
//准备要更新的数据
$salary = $staff['salary'];
$name = $staff['name'];
//执行预处理语句
$stmt->execute();
//检测运行结果
if ($stmt->affected_rows > 0 ){
echo '<br>成功更新'.$stmt->affected_rows.'条记录';
} else {
echo '<br>没有更新记录';
}
}
//5.注销stmt对象
$stmt->close();
} else { //返回错误信息
exit($stmt->errno.':'.$stmt->error);
}
//6. 关闭数据库连接
$mysqli->close();点击 "运行实例" 按钮查看在线实例
MySQLi面向对象实现删除操作
<?php
/**
* 新增操作,简化版
* 刚才的案例发现,如果同时插入多条记录,会产生大量的重复冗余代码
* 我们可以循环来简化
* 更新与删除: update/delete与这个操作流程完全一致,请同学们自己尝试改写
*/
//1.连接数据库
require 'mysqli_connect.php';
//2.准备SQL语句
$sql = "DELETE from staff WHERE name = ?;";
//3.创建STMT预处理对象
$stmt = $mysqli->stmt_init();
//4.检测预处理SQL语句
if ($stmt->prepare($sql)) {
//用二维数组来保存要删除的记录
$data[] = ['name'=> '灭绝师太1'];
//绑定参数到预处理SQL语句
$stmt->bind_param('s',$name);
foreach ($data as $staff) {
//准备要插入的数据
$name = $staff['name'];
//执行预处理语句
$stmt->execute();
//检测运行结果
if ($stmt->affected_rows > 0 ){
echo '<br>成功删除'.$stmt->affected_rows.'条记录';
} else {
echo '<br>没有删除记录';
}
}
//5.注销stmt对象
$stmt->close();
} else { //返回错误信息
exit($stmt->errno.':'.$stmt->error);
}
//6. 关闭数据库连接
$mysqli->close();点击 "运行实例" 按钮查看在线实例
PDO实现删除操作
<?php
/**
* 预处理删除数据
*/
//1.连接数据库,创建pdo对象
try {
$pdo = new PDO('mysql:dbname=php','root','root');
} catch (PDOException $e) {
exit($e->getMessage());
}
//2.准备sql语句
$sql = "delete from staff where staff_id=:staff_id;";
//3.创建预处理对象stmt对象
if($stmt = $pdo->prepare($sql)) {
//4.将参数绑定到stmt对象并执行
//准备参数
$param = ['staff_id'=>5];
//绑定参数到SQL语句对象并执行
if ($stmt -> execute($param)){
//rowCount()返回更新的数量,如果大于0表示有记录被更新啦
if ($stmt->rowCount()>0) {
echo '成功删除了'.$stmt->rowCount().'条记录';
} else { //等于0表示没有记录被更新
echo '没有记录被删除';
}
} else { //执行失败的信息
print_r($stmt->errorInfo());
exit();
}
} else { //$stmt语句对象创建失败
print_r($pdo->errorInfo());
exit();
}点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号