批改状态:未批改
                        老师批语:
                    
                            msqli查询
<?php
// 连接数据库
require('8.php');
//准备SQL语句
$sql = "SELECT `id`, `name`, `salary`  FROM `user` WHERE `salary` > ? ;";
//创建一个SQL语句的预处理对象
$stmt = $sqli->prepare($sql);
//参数绑定
$salary = 5000;
$stmt->bind_param('i',$salary);
//执行SQL语句
if ($stmt->execute()) {
    //获取结果集并放到缓存区
    $stmt->store_result();
    //将结果集中的列绑定到变量上
    $stmt->bind_result($id,$name, $salary);
    //结果集是否不为,只有不为空的时候才遍历
    if ($stmt->num_rows > 0) {
        // 循环遍历结果集
        // fetch()每次获取一条记录,并将指针自动下移
        while ($stmt->fetch()) {
            echo '<p>id:'.$id.'---姓名:' .$name.'---工资:'.$salary.'</p>';
        }
    } else {
        exit('<p>当前表中没有数据</p>');
    }
    // 释放结果集
    $stmt->free_result();
} else {
    exit($stmt->errno. ':' .$stmt->error);
}
//注销stmt对象
$stmt->close();
//关闭连接
$sqli->close();点击 "运行实例" 按钮查看在线实例

PDO的优势:统一使用pdo方法操作不同的数据库
PDO添加数据
<?php
//连接数据库
$pdo = new PDO('mysql:host=127.0.0.1;dbname=test;charset=UTF8', 'root', '');
//准备SQL语句,用"命名占位符"
$sql = "INSERT `user` SET `name`= :name, `age`= :age, `sex`= :sex,`salary`= :salary;";
// 创建预处理对象
$stmt = $pdo -> prepare($sql);
// 执行添加
$stmt -> execute(['name' => "陈成程", 'age' => 25, 'sex' => 1, 'salary' => 5000]);
$stmt -> execute(['name' => "小甜甜", 'age' => 23, 'sex' => 1, 'salary' => 9000]);
$stmt -> execute(['name' =>"张楞", 'age' => 30, 'sex' => 0, 'salary' => 5000]);
echo '<h3>成功添加了', $stmt -> rowcount(), '条记录</h3>';点击 "运行实例" 按钮查看在线实例

PDO更新数据
<?php
// PDO更新数据
//PDO连接数据库
$pdo = new PDO('mysql:host=127.0.0.1;dbname=test;charset=UTF8', 'root', '');
//准备SQL语句,用"命名占位符"
$sql = "UPDATE `user` SET `salary`= :salary WHERE `id`= :id";
//创建预处理对象
$stmt = $pdo->prepare($sql);
$stmt->execute(['salary' => 8000,'id'=>9]);
echo '<h3>成功更新了'.$stmt->rowcount().'条记录</h3>';点击 "运行实例" 按钮查看在线实例

PDO删除数据
<?php
// PDO删除数据
//PDO连接数据库
$pdo = new PDO('mysql:host=127.0.0.1;dbname=test;charset=UTF8', 'root', '');
//准备SQL语句,用"命名占位符"
$sql = "DELETE FROM `user` WHERE `id`< :id";
//创建预处理对象
$stmt = $pdo->prepare($sql);
$stmt->execute(['id'=>7]);
echo '<h3>成功删除了'.$stmt->rowcount().'条记录</h3>';点击 "运行实例" 按钮查看在线实例

PDO查询操作
<?php
// PDO查询数据
//PDO连接数据库
$pdo = new PDO('mysql:host=127.0.0.1;dbname=test;charset=UTF8', 'root', '');
//准备SQL语句,用"命名占位符"
$sql = "SELECT `name`, `salary` FROM `user` WHERE `id`> :id";
//创建预处理对象
$stmt = $pdo->prepare($sql);
$stmt -> execute(['id' => 10]);
//获取结果集
//1.将结果集中的列绑定到变量上
$stmt -> bindColumn('name', $name);
$stmt -> bindColumn('salary', $salary);
//2.用列变量来遍历结果集
while ($stmt->fetch(PDO::FETCH_BOUND)) {
    echo '姓名: ',$name,'——',' 工资: ', $salary, '<br>';
}点击 "运行实例" 按钮查看在线实例

获取结果集记录数量的正确方式是:将结果集中的列绑定到变量上,再遍历列变量获得结果集
总结:
1.PDO连接数据库:$pdo = new PDO('mysql:host=host; dbname=dbname; charset=UTF8', 'username', 'password');
    2.获得PDO查询结果集:将结果集中的列绑定到变量上,再遍历列变量获得结果集
                Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号