PDO 的优势:
PDO 是php数据对象,PDO是php所有操作的数据库一个统一的接口。php不会识别数据库:mysql,Oracle等。却识别PDO。
PDO代码比MySQL数据库更加简洁,简化点。
1、PDO数据库连接:
实例
<?php header('Content-type:text/html;charset=utf-8');// 设置编码 $host = 'mysql:host=127.0.0.1;name=php'; $user = 'root'; $pass = 'root'; // PDO 创建 $pdo = new PDO($host,$user,$pass); // PDO连接判断 try{ $pdo = new PDO($host,$user,$pass); // echo '<h2>连接成功</h2>'; }catch(PDOException $s){ die('连接失败:'.$s->getMessage()); } // 关闭连接 $pdo = null;
运行实例 »
点击 "运行实例" 按钮查看在线实例
2、PDO增加数据:
实例
<?php header('Content-type:text/html;charset=utf-8');// 设置编码 // PDO 数据库连接 $pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root'); // 创建预处理对象并增加数据 $stmt = $pdo->prepare("INSERT `test` SET `name`=:name,`sex`=:sex"); $stmt->execute(['name'=>'金龙1','sex'=>'男']); echo '成功添加:'.$stmt->rowCount().'条数据'; // 关闭连接 $pdo = null;
运行实例 »
点击 "运行实例" 按钮查看在线实例
3、PDO更新数据:
实例
<?php header('Content-type:text/html;charset=utf-8');// 设置编码 // PDO 数据库连接 $pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root'); // 创建预处理对象并增加数据(更新id为109的数据) $stmt = $pdo->prepare("UPDATE `test` SET `name`=:name WHERE `id`=:id"); $stmt->execute(['name'=>'金龙哈哈','id'=>'109']); echo '成功更新:'.$stmt->rowCount().'条数据'; // 关闭连接 $pdo = null;
运行实例 »
点击 "运行实例" 按钮查看在线实例
4、PDO 删除数据:
实例
<?php header('Content-type:text/html;charset=utf-8');// 设置编码 // PDO 数据库连接 $pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root'); // 创建预处理对象并增加数据 $stmt = $pdo->prepare("DELETE FROM `test` WHERE `id`=:id"); $stmt->execute(['id'=>109]); echo '成功删除:'.$stmt->rowCount().'条数据'; // 关闭连接 $pdo = null;
运行实例 »
点击 "运行实例" 按钮查看在线实例
5、PDO查询数据:
实例
<?php header('Content-type:text/html;charset=utf-8');// 设置编码 // PDO 数据库连接 $pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root'); // 创建预处理对象并增加数据(查询字段 为 name salary,并且字段 id为条件) $stmt = $pdo->prepare("SELECT `name` `salary` FROM `test` WHERE `id`>:id"); // 查询 id 字段为 大于100 的数据 $stmt->execute(['id'=>100]); while($row = $stmt->fetch(Pdo::FETCH_ASSOC)){ echo var_export($row),'<br>'; } // 关闭连接 $pdo = null;
运行实例 »
点击 "运行实例" 按钮查看在线实例
6、获取结果集记录数量的正确方式是什么?
采用 prepare("select count(*) from staff where salary > :salary"); 方法
实例
<?php header('Content-type:text/html;charset=utf-8');// 设置编码 // PDO 数据库连接 $pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root'); // 创建预处理对象 $stmt = $pdo->prepare("select count(*) from `test` where salary > :salary"); $stmt->execute(['salary'=> 20000]); echo '大于2000的人数:'.$stmt->fetchColumn();// // 关闭连接 $pdo = null;
运行实例 »点击 "运行实例" 按钮查看在线实例
7、MySQLi面向对象中的查询操作:
实例
<?php header('Content-Type:text/html;charset=utf-8'); require 'demo.php'; // 导入文件,数据库连接 // sql 查询语句 $sql = "SELECT `id`,`name`,`salary` FROM `test` WHERE `salary` >?;"; // 创建预处理对象 $stmt = $mysqli->stmt_init(); if($stmt->prepare($sql)){ // 数据类型为 int 与salary字段绑定 $stmt->bind_param('i',$salary); // 设置salary值 $salary = 2000; if($stmt->execute()){ // 获取的结果集并放在缓存区 $stmt->store_result(); //将结果集中的列绑定到变量上 $stmt->bind_result($id,$name,$salary); if($stmt->num_rows > 0){ while($stmt->fetch()){ echo '<p>id:'.$id.'---姓名:' .$name.'---工资:'.$salary.'</p>'; } }else{ exit('<p>当前表中没有数据</p>'); } $stmt->free_result(); }else{ exit($stmt->errno.':'.$stmt->error); } }else{ exit($stmt->errno.':'.$stmt->error); } $stmt->close(); $mysqli->close();
运行实例 »
点击 "运行实例" 按钮查看在线实例