Blogger Information
Blog 9
fans 1
comment 0
visits 7738
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
MySQLi面向过程:使用预处理技术实现更新与删除操作
hongda的博客
Original
1913 people have browsed it

以下是用php面向过程使用预处理对数据库中的数据进行更新:

<?php
/*
 *  预处理对象: stmt   Statement对象
 *  stmt对应着一个SQL语句的模板(变量分离   用占位符进行替换)
 */

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

//2.准备sql语句的模板
$sql = "UPDATE staff SET salary = ? WHERE staff_id = ?;";

//3.创建stmt对象: 将 SQL 语句转为对象
$stmt = mysqli_stmt_init($db);

//4. 用stmt对象检测当前的预处理对象是否正确
if (mysqli_stmt_prepare($stmt,$sql)){
    //将变量与语句中的占位符进行绑定,  s:字符串  i:整数  d:小数
    mysqli_stmt_bind_param($stmt,'ii',$salary,$staff_id);
    $salary=9999; $staff_id= 4;

    //执行sql
    if (mysqli_stmt_execute($stmt)){
        //受影响的记录数
        if (mysqli_stmt_affected_rows($stmt)>0){
            echo 'Update success!';

        }else{
            echo 'No row updated!';
        }
    }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);


MySQL里面的数据如下:

001.jpg

staff_id是4的  salary是4445

现在运行上面的php代码:

002.jpg

MySQL的表格更新为:

3.jpg


可见satff_id为4的salary已经被更新为9999.



以下是用php面向过程使用预处理对数据库中的数据进行删除操作:

<?php
/*
 *  预处理对象: stmt   Statement对象
 *  stmt对应着一个SQL语句的模板(变量分离   用占位符进行替换)
 */

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

//2.准备sql语句的模板
$sql = "DELETE FROM staff WHERE staff_id =?;";

//3.创建stmt对象: 将 SQL 语句转为对象
$stmt = mysqli_stmt_init($db);

//4. 用stmt对象检测当前的预处理对象是否正确
if (mysqli_stmt_prepare($stmt,$sql)){
    //将变量与语句中的占位符进行绑定,  s:字符串  i:整数  d:小数
    mysqli_stmt_bind_param($stmt,'i',$staff_id);
    $staff_id = 24;

    //执行sql
    if (mysqli_stmt_execute($stmt)){
        //受影响的记录数
        if (mysqli_stmt_affected_rows($stmt)>0){
            echo 'DELETE success!';

        }else{
            echo 'No row was deleted!';
        }
    }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);

MySQL数据库里面的data在php运行之前:

001.jpg

运行之后:

002.jpg

003.jpg

可见staff_id为24的那一项已经被删除了。










Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post