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函数获取数量