博客列表 >MySQL 预处理方法更新删除-2018年04月27日00时59分

MySQL 预处理方法更新删除-2018年04月27日00时59分

植树青年小江同志的博客
植树青年小江同志的博客原创
2018年04月27日 01:03:311157浏览

1.预处理技术,可以将动态变量,从SQL语句中的分离出来,单独操作

2.解决了SQL注入的安全问题

3.预处理操作是通过一个叫预处理对象的工具来操作的: STMT


实例--删除

<?php

// 连接数据库
require 'mysqli_connect.php';

// 准备 sql 语句

$sql = "DELETE FROM staff WHERE salary>?;";

// 创建并初始化预处理对象stmt
$stmt = mysqli_stmt_init($db);
$salary = 5000;

// 用stmt对象检测当前的预处理语句是否正确,成功返回true,错误返回false
if (mysqli_stmt_prepare($stmt, $sql)) {
  // 变量与语句中的占位符进行绑定

  mysqli_stmt_bind_param($stmt, 'i', $salary);
  
  // 执行sql
  if (mysqli_stmt_execute($stmt)) {
    // 判断成,记录数据
    if (mysqli_stmt_affected_rows($stmt) > 0) {
      echo '删除成功';
    } else {
      echo '没有删除任何数据';
    }

  } else {
    exit(mysqli_stmt_errno($stmt) . ':' . mysqli_stmt_error($stmt));
  }
} else {
  exit(mysqli_stmt_errno($stmt) . ':' . mysqli_stmt_error($stmt));
}

// 注销 stmt 对象
mysqli_stmt_close($stmt);

// 关闭连接
mysqli_close($db);

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例--更新    

<?php

// 连接数据库
require 'mysqli_connect.php';

// 准备 sql 语句

$sql = "UPDATE staff SET salary=? WHERE staff_id=?;";

// 创建并初始化预处理对象stmt
$stmt = mysqli_stmt_init($db);
$salary = 5000;
$staff_id = 3;

// 用stmt对象检测当前的预处理语句是否正确,成功返回true,错误返回false
if (mysqli_stmt_prepare($stmt, $sql)) {
  // 变量与语句中的占位符进行绑定

  mysqli_stmt_bind_param($stmt, 'ii', $salary, $staff_id);
  
  // 执行sql
  if (mysqli_stmt_execute($stmt)) {
    // 判断成,记录数据
    if (mysqli_stmt_affected_rows($stmt) > 0) {
      echo '更新成功,主键是:'.$staff_id;
    } else {
      echo '没有更新任何数据';
    }

  } else {
    exit(mysqli_stmt_errno($stmt) . ':' . mysqli_stmt_error($stmt));
  }
} else {
  exit(mysqli_stmt_errno($stmt) . ':' . mysqli_stmt_error($stmt));
}

// 注销 stmt 对象
mysqli_stmt_close($stmt);

// 关闭连接
mysqli_close($db);

运行实例 »

点击 "运行实例" 按钮查看在线实例

WX20180427-010401.png

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议