博客列表 >MySQLi面向过程:使用预处理技术实现更新与删除操作: 2018年作业

MySQLi面向过程:使用预处理技术实现更新与删除操作: 2018年作业

杜苏华迈专注于物联网可视化管理的博客
杜苏华迈专注于物联网可视化管理的博客原创
2018年04月25日 09:41:11800浏览


1. 配置数据库连接参数 mysqli_config.php

<meta charset="UTF-8">
<?php
/**
 * 配置数据库连接参数
 */

define ('DB_HOST', '127.0.0.1');
define ('DB_USER', 'root');
define ('DB_PASS', 'root');
define ('DB_NAME', 'php');
define ('DB_CHAR', 'utf8');

运行实例 »

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


2* mysqli数据库连接   mysqli_connect.php

<?php
/**
 * mysqli数据库连接
 * 步骤:
 * 1. 创建连接参数
 * 2. 调用连接函数,返回连接资源
 * 3. 判断是否连接成功
 * 4. 选择数据库
 * 5. 设置默认字符集
 *
 * 用到的函数
 * 1. mysqli_connect($host,$user,$pass)
 * 2. mysqli_connect_errno($db)
 * 3. mysqli_connect_error($db)
 * 4. mysqli_select_db($dbName)
 * 5. mysqli_set_charset('utf8')
 */

//1. 创建连接参数
//创建连接参数: 因为连接参数不会经常变化,所以推荐使用常量
// define ('DB_HOST', '127.0.0.1');
// define ('DB_USER', 'root');
// define ('DB_PASS', 'root');
// define ('DB_NAME', 'php');
// define ('DB_CHAR', 'utf8');

//导入数据库连接参数
require 'mysqli_config.php';

//2. 调用连接函数,成功则返回mysqli对象,失败返回false
$db = mysqli_connect(DB_HOST, DB_USER, DB_PASS);
//var_dump($db);die();
//3. 测试连接是否成功?
//连接失败一定会返回错误编号,可以根据编号判断,也可用 $db是否为false进行判断
//简化代码 $db = mysqli_connect(DB_HOST, DB_USER, DB_PASS,DB_NAME) or die('连接失败'.mysqli_connect_error($db));
if (mysqli_connect_errno($db)) {
    exit('连接失败'.mysqli_connect_error($db));
}

echo '<h1>连接成功</h1>';

//4. 选择要操作的数据库
mysqli_select_db($db,DB_NAME);

//5. 设置默认字符集
mysqli_set_charset($db,DB_CHAR);

运行实例 »

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


MySQLi面向过程:使用预处理技术实现更新.png

使用预处理技术实现更新 :把id=2 黄蓉的salary 改为9999

实例  mysqli_update.php

<meta charset="UTF-8">

<?php
/**
*/
//1.连接数据库
require 'mysqli_connect.php';

//2.准备SQL语句,将变量部分使用占位符进行代替
$sql="UPDATE IGNORE staff SET salary=? WHERE staff_id=3;";

//3.创建并初始化预处理对象stmt:将SQL语句转为对象
$stmt=mysqli_stmt_init($db);

//4.用stmt对象检测预处理语句是否正确,成功返回true,错误返回false
if (mysqli_stmt_prepare($stmt,$sql)){
 /* 将变量与SQL语句中的占位符进行绑定 */
    mysqli_stmt_bind_param($stmt,'i',$salary);

    $salary=9999;

    /* 执行SQL语句 */
    mysqli_stmt_execute($stmt);

     echo '<br>成功的更新了'.mysqli_affected_rows($db).'条记录';
} else {
     echo '没有新增任何数据';
    //返回SQL执行阶段的错误
    exit(mysqli_stmt_errno($stmt).':'.mysqli_stmt_error($stmt));
}

//* 注销stmt对象 */
mysqli_stmt_close($stmt);
//12.关闭数据库连接
mysqli_close($db);

运行实例 »

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


MySQLi面向过程:使用预处理技术实现删除1.png


MySQLi面向过程:使用预处理技术实现删除2.png

使用预处理技术实现删除 :删除id=15 小龙女

实例 mysqli_delete.php

<meta charset="UTF-8">

<?php
/**
*/
//1.连接数据库
require 'mysqli_connect.php';

//2.准备SQL语句,将变量部分使用占位符进行代替
$sql="DELETE FROM staff WHERE staff_id=?;";

//3.创建并初始化预处理对象stmt:将SQL语句转为对象
$stmt=mysqli_stmt_init($db);

//4.用stmt对象检测预处理语句是否正确,成功返回true,错误返回false
if (mysqli_stmt_prepare($stmt,$sql)){
 /* 将变量与SQL语句中的占位符进行绑定 */
    mysqli_stmt_bind_param($stmt,'i',$id);

     $id=15;

    /* 执行SQL语句 */
    mysqli_stmt_execute($stmt);

     echo '<br>删除成功了'.mysqli_affected_rows($db).'条记录';
} else {
     echo '没有删除任何数据';
    //返回SQL执行阶段的错误
    exit(mysqli_stmt_errno($stmt).':'.mysqli_stmt_error($stmt));
}

//* 注销stmt对象 */
mysqli_stmt_close($stmt);
//12.关闭数据库连接
mysqli_close($db);

运行实例 »

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





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