prepare()预处理 bindParam()参数绑定(php变量) bindValue()参数绑定(常数)
bindColumn()绑定一个列名到php变量 execute()执行一条语句 exec()返回受影响的行数
fetch()返回结果集一维数组带列名key和默认key fetchAll()返回结果集二维数组带列名key和默认key
setFetchMode()设置返回模式 lastInsertId()返回最后添加的id字段值 rowCount()返回数据的行数
PDO::FETCH_ASSOC PDO::FETCH_BOUND PDO::PARAM_INT PDO::PARAM_STR
实例 demo01.php
<?php // 定义常量DSN 数据库:主机=ip;库名=php define('DSN','mysql:host=127.0.0.1;dbname=php'); define('USER','root'); // 数据库账号 define('PWD','root'); // 数据库密码 $in = time(); // 获取时间戳 // try catch(PDOException $e) 捕捉连接失败的异常 里面的$e是一个异常对象 try{ $pdo = new PDO(DSN,USER,PWD); echo '数据库连接成功 '; print_r($pdo); }catch(PDOException $e){ echo '连接失败: '.$e->getMessage(); // 获取连接失败的信息 } // 1.查询记录 //方法1: /* $sql_0 = "SELECT `id`,`name`,`course` FROM `staff` WHERE `id` BETWEEN :start AND :stop "; $res = $pdo->prepare($sql_0); $res->bindColumn('id',$id,PDO::PARAM_INT); $res->bindColumn('name',$name,PDO::PARAM_STR); $res->bindColumn('course',$course,PDO::PARAM_STR); $res->execute(['start'=>3,'stop'=>17]); echo '<h2 align="center">输出信息</h2>'; echo '<table border="1" cellpadding="0" cellspacing="0" width="30%" align="center">'; echo '<tr><th>Id</th><th>Name</th><th>Course</th></tr>'; while($res->fetch(PDO::FETCH_BOUND)){ echo '<tr bgcolor="#ff6700" align="center">'; echo '<td>'.$id.'</td><td>'.$name.'</td><td>'.$course.'</td>'; echo '</tr>'; } echo '</table>'; */ // 方法2: /* $sql_0 = "SELECT `id`,`name`,`course` FROM `staff` WHERE `id`>6 "; $res = $pdo->query($sql_0); $res->setFetchMode(PDO::FETCH_ASSOC); if($res && $res->rowCount()){ while($row = $res->fetch()){ echo '<pre>'; print_r($row); } } */ // 方法3 $sql_0 = "SELECT `id`,`name`,`course`,`intodate` FROM `staff` WHERE `id`>:id AND `name` LIKE :v"; $res = $pdo->prepare($sql_0); $res->bindValue(':id',8,PDO::PARAM_INT); $v = '%m%'; $res->bindParam(':v',$v,PDO::PARAM_STR); $res->execute(); while($row = $res->fetch(PDO::FETCH_ASSOC)){ echo '<pre>'; var_dump($row); } // 2.插入记录 /* $sql_1 = "INSERT INTO `staff`(`name`,`age`,`sex`,`intodate`) // SQL插入语句模板 VALUES('Jack01',13,1,'{$in}')"; $num = $pdo->exec($sql_1); $id = $pdo->lastInsertId(); if($num > 0){ echo '<pre>'; echo '已插入'.$num.'条记录, 主键为:'.$id; } */ // 3.更新记录 /* $sql_2 = "UPDATE `staff` SET `course`=:name,`intodate`=:in WHERE `id`=10"; // SQL更新语句模板 $res = $pdo->prepare($sql_2); // 准备执行一个sql语句 $sql_2 // bindValue()方法把一个值绑定到一个参数中,值可以为常数 // 参数1: 参数标识符号,占位符 // 参数2: 绑定到参数的值,常数 // 参数3: PDO::PARAM_* 常量 明确地指定参数的类型 $res->bindValue(':name','HTML5',PDO::PARAM_STR); // bindParam() 绑定一个参数到指定的变量名, 不能为常数 // 参数1: 参数标识符号,占位符 // 参数2: 绑定到sql语句参数的php变量名 // 参数3: PDO::PARAM_* 常量 明确地指定参数的类型 $res->bindParam(':in',$in,PDO::PARAM_INT); $res->execute(); // 执行一条预处理语句 if($res == true){ echo '<pre>'; echo '数据更新成功'; } */ // 4.删除记录 /* $sql_3 = "DELETE FROM `staff` WHERE `id`=:id"; $res = $pdo->prepare($sql_3); $res->execute(['id'=>2]); if($res == true){ echo '<pre>'; echo '删除成功'; } */ unset($pdo); // $pdo=NULL; 关闭数据库
运行实例 »
点击 "运行实例" 按钮查看在线实例
实例 staff.sql
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for staff -- ---------------------------- DROP TABLE IF EXISTS `staff`; CREATE TABLE `staff` ( `id` int(5) unsigned NOT NULL AUTO_INCREMENT, `name` char(40) NOT NULL COMMENT '名字', `age` tinyint(3) unsigned NOT NULL COMMENT '年龄', `sex` tinyint(1) unsigned NOT NULL COMMENT '1:男, 0女', `course` varchar(50) DEFAULT NULL COMMENT '课程', `mobile` char(11) DEFAULT NULL COMMENT '手机', `intodate` char(50) NOT NULL COMMENT '时间', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=18 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of staff -- ---------------------------- INSERT INTO `staff` VALUES ('3', 'Tom3', '14', '1', 'JavaScript', '19514942869', '1550914952'); INSERT INTO `staff` VALUES ('4', 'Tom4', '26', '0', 'jQuery', '19514992865', '1550914972'); INSERT INTO `staff` VALUES ('5', 'Tom5', '30', '1', 'Vue.js', '15514912862', '1550914992'); INSERT INTO `staff` VALUES ('6', 'Tom6', '19', '1', 'C++', '13514932863', '1550915056'); INSERT INTO `staff` VALUES ('7', 'Tom7', '27', '1', 'Java', '15514972867', '1550915072'); INSERT INTO `staff` VALUES ('8', 'Tom8', '12', '1', 'Python', '18514912868', '1550915097'); INSERT INTO `staff` VALUES ('9', 'Tom9', '29', '0', 'CSS3', '17514982863', '1550915106'); INSERT INTO `staff` VALUES ('10', 'Tom10', '16', '0', 'HTML5', '14514962864', '1550915121'); INSERT INTO `staff` VALUES ('14', 'Jack01', '13', '1', 'PHP', null, '1550911289'); INSERT INTO `staff` VALUES ('16', 'Jack01', '13', '1', 'C', null, '1550911206'); INSERT INTO `staff` VALUES ('17', 'Jack01', '13', '1', 'C#', null, '1550911253');
运行实例 »
点击 "运行实例" 按钮查看在线实例