博客列表 >第八课—PDO 2018年8月30日 20时00分

第八课—PDO 2018年8月30日 20时00分

空白
空白原创
2018年09月02日 16:21:40999浏览

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();

运行实例 »

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

1.png

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>';

运行实例 »

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

2.png

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>';

运行实例 »

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

3.png

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>';

运行实例 »

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

4.png


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>';
}

运行实例 »

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

5.png


获取结果集记录数量的正确方式是:将结果集中的列绑定到变量上,再遍历列变量获得结果集


总结:

    1.PDO连接数据库:$pdo = new PDO('mysql:host=host; dbname=dbname; charset=UTF8', 'username', 'password');

    2.获得PDO查询结果集:将结果集中的列绑定到变量上,再遍历列变量获得结果集

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