博主信息
博文 43
粉丝 0
评论 0
访问量 33639
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PDO操作+2018年8月30日
Lee的博客
原创
678人浏览过
  1. MySQLi面向对象中的查询操作

实例

<?php
require 'lianjie.php';

$sql = "select `staff_id`,`name`,`salary` from `staff` where `salary` > ? ;";

$stmt = $mysqli->stmt_init();

if ($stmt->prepare($sql)){
    $stmt->bind_param('i',$salary);
    $salary = 7000;
    if ($stmt->execute()){
         $stmt->store_result();
         $stmt->bind_result($staff_id,$name,$salary);
         if ($stmt->num_rows > 0){
             while ($stmt->fetch()){
                 echo '<p>id:'.$staff_id.'---姓名:' .$name.'---工资:'.$salary.'</p>';
             }
         }else{
             exit('<p>当前表中没有数据</p>');
         }
         $stmt->free_result();
    }exit($stmt->errno.':'.$stmt->error);
}else{
    exit($stmt->errno. ': ' . $stmt->error);
}

$stmt->close();

$mysqli->close();

运行实例 »

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


2.PDO 的优势

1:PDO真正的以底层实现的统一接口数库操作接口,不管后端使用的是何种数据库,如果代码封装好了以后,应用层调用基本上差不多的,当后端数据库更换了以后,应用层代码基本不用修改.

2:PDO支持更高级的DB特性操作,如:存储过程的调度等,mysql原生库是不支持的.

3:PDO是PHP官方的PECL库,兼容性稳定性必然要高于MySQL Extension,可以直接使用 pecl upgrade pdo 命令升级.

4:PDO可以防止SQL注入,确保数据库更加安全


3.PDO 连接数据库

实例

<?php
$dsn = 'mysql:host=127.0.0.1;dbname=php';
$user = 'root';
$pass = 'root';
try{
    $pdo = new PDO($dsn,$user,$pass);
} catch (PDOException $e){
    die('connect ERROR!:'.$e->getMessage());
}

运行实例 »

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


4.PDO新增数据

实例

<?php
//1连接数据库
$pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root');
//2创建预处理对象
$stmt = $pdo->prepare("INSERT `user` SET `user_name`= :name,`email`= :email,`password`=sha1(:password)");
//3.执行添加
$stmt->execute(['name'=>'大渣渣','email'=>'dazaza@qq.com','password'=>'hjy']);

echo '<h3>成功添加了'.$stmt->rowCount().'条记录</h3>';

运行实例 »

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


5.PDO更新数据

实例

<?php
//1连接数据库
$pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root');
//2准备SQL语句
$sql = "update `user` SET `email`=:email where `user_id`= :id";
//创建预处理对象
$stmt = $pdo->prepare($sql);
//更新
$stmt->execute(['email'=>'xiaozaza@qq.com','id'=>5]);
echo '<h3>成功更新了'.$stmt->rowCount().'条记录</h3>';

$stmt = null;
// 关闭连接
$pdo = null;

运行实例 »

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


6.PDO 删除数据

实例

<?php
//连接数据库
$pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root');
//准备SQL语句
$sql = "DELETE FROM `user` WHERE `user_id`=:id ";
//创建预处理对象
$stmt = $pdo->prepare($sql);
//执行
$stmt->execute(['id'=>7]);
echo '<h3>成功删除了'.$stmt->rowCount().'条记录</h3>';
//注销用户
$stmt = null;
// 关闭连接
$pdo = null;

运行实例 »

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


7.PDO查询数据

实例

<?php
//连接数据库
$pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root');
//准备SQL语句,占位符我们不再用?,用"命名占位符"
$sql = "SELECT `user_name`,`email`  FROM `user` WHERE `user_id` < :id";
//创建预处理对象
$stmt = $pdo->prepare($sql);
//执行查询
$stmt->execute(['id'=>12]);
//将结果集中的列绑定到变量上
$stmt->bindColumn('user_name',$name);
$stmt->bindColumn('email',$email);

while ($stmt->fetch(PDO::FETCH_BOUND)){
    echo '姓名: ',$name, ',  邮箱: ', $email, '<br>';
}

运行实例 »

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


8.获取结果集记录数量的正确方式是什么?

select count(*) from staff where salary > :salary

要用count函数获取总数

$stmt->fetchColumn();

fetchcolumn函数获取数量

批改状态:未批改

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学