Blogger Information
Blog 38
fans 0
comment 2
visits 24059
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
MySQLi面向对象实现更新操作 和 PDO实现删除操作—4月25日
→忆指凡尘&的博客
Original
649 people have browsed it

大家好:

      以下是MySQLi面向对象实现更新操作 和 PDO实现删除操作的练习,如有错误望大家指出,谢谢

实例

<?php
//1.连接参数
$db_host = 'localhost';
$db_user = 'root';
$db_pass = 'root';
$db_name = 'php';
$db_charset = 'utf8';

//2.连接数据库服务器,并返回mysqli对象
$mysqli = @new mysqli($db_host,$db_user,$db_pass);

//3.检测是否连接成功
if ($mysqli->connect_errno) {
    exit('连接错误'.$mysqli->connect_errno.':'.$mysqli->connect_error);
}

//4.设置默认数据库
$mysqli->select_db($db_name);

//5.设置客户端默认字符编码集
$mysqli->set_charset($db_charset);

//面向对象使用预处理进行更新操作
//准备SQL语句
$sql = "UPDATE staff SET salary = ? WHERE staff_id = ?;";

//创建STMT预处理对象
$stmt = $mysqli->stmt_init();

//检测预处理SQL语句
if ($stmt->prepare($sql)) {
    //绑定参数到预处理SQL语句
    $stmt->bind_param('ii',$salary,$staff_id);

    //设置参数
    $salary = 5000;
    $staff_id = 12;
    //执行预处理语句
    $stmt->execute();
    if ($stmt->affected_rows > 0 ){
        echo '<br>成功更新'.$stmt->affected_rows.'条记录';
    } else {
        echo '<br>没有更新记录';
    }

    //注销stmt对象
    $stmt->close();
} else {
    exit($stmt->errno.':'.$stmt->error);
}

//关闭数据库连接
$mysqli->close();

运行实例 »

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

实例

<?php
//1.配置参数
/**
 * DNS:数据源
 * 基本格式: 数据库类型:属性1:值1; 属性2:值2;...
 * 类型:如mysqli,oracle等
 * 属性: 主机,默认数据库,默认字符集,默认端口号
 * 例如: mysql:host=127.0.0.1;dbname=php;charset=utf8;port=3306;
 */
$dsn = 'mysql:host=localhost; dbname=php; charset=utf8; port=3306';

//数据库用户名
$userName = 'root';

//数据库用户密码
$password = 'root';

//配置连接属性
$options = [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,  //设置错误模式
    PDO::ATTR_CASE => PDO::CASE_NATURAL,  //数据表字段保持不变
    PDO::ATTR_EMULATE_PREPARES => true, //启用PDO模拟
    PDO::ATTR_PERSISTENT => true, //启用持久性连接
];

//使用try-catch()来捕获可能发生的错误
try {
    //调用PDO构造函数实例化PDO类,创建PDO对象
    $pdo = new PDO($dsn, $userName, $password, $options);
    //连接是所有操作的基础,无论你设置的错误模式级别是什么,都会强制使用EXCEPTION异常模式
} catch (PDOException $e) {

    print 'Connect ERROR!:'.$e->getMessage(); //推荐使用英文提示,以防止页面中文乱码
    die();  //连接错误是致命错误,必须停止脚本的执行
}


// PDO实现删除操作
//准备sql语句
$sql = "DELETE FROM staff WHERE staff_id=:staff_id";

//创建预处理对象stmt对象
if($stmt = $pdo->prepare($sql)) {

    //将参数绑定到stmt对象并执行

    //准备参数
    $param = ['staff_id'=>5];

    //绑定参数到SQL语句对象并执行
    if ($stmt -> execute($param)){
        //rowCount()返回删除的数量
        if ($stmt->rowCount()>0) {
            echo '成功删除了'.$stmt->rowCount().'条记录';
        } else {  //等于0表示没有记录被删除
            echo '没有记录被删除';
        }
    } else { //执行失败的信息
        print_r($stmt->errorInfo());
        exit();
    }

} else {  //$stmt语句对象创建失败
  print_r($pdo->errorInfo());
  exit();
}

//销毁PDO对象
$pdo = null;

运行实例 »

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

                                                                                       课程总结

1.了解面向对象的curd操作的基本流程

2.了解绑定参数到预处理SQL语句的方法 — $stmt->bind_param()

3.了解PDO操作的数据库的基本流程

4.学习使用try-catch()来捕获可能发生的错误的方法

Correction status:Uncorrected

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