增删改与事务要点
- INSERT 用预处理防注入,执行成功即入库
- UPDATE 必须带 WHERE,漏写会改光整表
- DELETE 同样带 WHERE,误删只能靠备份还原
- mysqli_begin_transaction 开事务,成对 commit 提交
- 中途异常走 mysqli_rollback 回滚,保护数据一致
- 操作完统一 mysqli_close 收尾,别留悬挂连接
增删改与事务示例
$conn = mysqli_connect("127.0.0.1", "app_user", "app_pass", "shop_db");
// 新增
$stmt = mysqli_prepare($conn, "INSERT INTO product (name, price) VALUES (?, ?)");
mysqli_stmt_bind_param($stmt, "sd", $name, $price);
$name = "机械键盘"; $price = 299.00;
mysqli_stmt_execute($stmt);
// 更新与删除
mysqli_query($conn, "UPDATE product SET price = 259.00 WHERE id = 1");
mysqli_query($conn, "DELETE FROM product WHERE id = 99");
// 事务
mysqli_begin_transaction($conn);
try {
mysqli_query($conn, "UPDATE account SET balance = balance - 100 WHERE id = 1");
mysqli_query($conn, "UPDATE account SET balance = balance + 100 WHERE id = 2");
mysqli_commit($conn);
} catch (Exception $e) {
mysqli_rollback($conn);
}
mysqli_close($conn);
避坑提醒:mysqli 默认自动提交,开事务后记得 commit,否则改动能回滚掉;调试时别两边都写,容易把数据卡在中间态。