博客列表 >MySQLi面向对象实现更新操作 和 PDO实现删除操作—4月25日

MySQLi面向对象实现更新操作 和 PDO实现删除操作—4月25日

→忆指凡尘&的博客
→忆指凡尘&的博客原创
2018年04月26日 23:34:15648浏览

大家好:

      以下是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()来捕获可能发生的错误的方法

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