批改状态:合格
老师批语:
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
<?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; 关闭数据库点击 "运行实例" 按钮查看在线实例
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');点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号