批改状态:合格
老师批语:完成的不错。预想结果 和 实际结果 相同才是对的。继续加油
前两天学习了数据库的增删改查,这两天学习了PHP中利用PDO对数据库进行操作。
PDO的数据库操作的基本流程为
//第一步,连接数据库
$pdo=new PDO("'type':host=localhost;dbname=dbname",$username,$password);
//第二步,创建SQL语句对象
//查询数据
$select='SELECT * FROM `表名` WHERE 条件';
//更新数据
$update='UPDATE `表名` SET `字段1`=:字段1,`字段2`=:字段2...WHERE 条 件 ';
//添加数据
$insert='INSERT INTO `表名` SET `字段1`=:字段1,`字段2`=:字段2...';
//删除数据,删除数据必须添加条件控制,否则就是删除表
$delete='DELETE `表名` WHERE 条件';
//第三步,创建预处理对象
$stmt=$pdo->prepare(SQL语句);
//第四步,进行变量绑定,
//根据SQL语句绑定变量
$stmt->bindParam('字段',变量,字段类型);
//常用的字段类型是PDO::PARAM_STR(字符串)和PDO::PARAM_INT(整型)
//第五步,执行SQL,SELECT使用fetch(),fetchAll(),bindcolumn()获取需要返回的结果集
$stmt->execute();
//第六步,关闭连接
$pdo=null;//或者
unset($pdo);点击 "运行实例" 按钮查看在线实例
//批量添加评论,先写一个评论数组
$comment=[
[
'mov_id'=>1,
'name'=>'小白',
'time'=>'2019-09-21',
'content'=>'这个算是良心剧了',
'img'=>'au_1.jpeg'
],
[
'mov_id'=>1,
'name'=>'小白',
'time'=>'2019-09-21',
'content'=>'我喜欢这个剧',
'img'=>'au_1.jpeg'
],
[
'mov_id'=>2,
'name'=>'小黑',
'time'=>'2019-09-22',
'content'=>'这个是什么啊',
'img'=>'au_2.jpeg'
],
[
'mov_id'=>2,
'name'=>'小黑',
'time'=>'2019-09-22',
'content'=>'不***',
'img'=>'au_2.jpeg'
],
[
'mov_id'=>3,
'name'=>'小白',
'time'=>'2019-09-21',
'content'=>'这个算是良心剧了',
'img'=>'au_1.jpeg'
],
[
'mov_id'=>3,
'name'=>'小白',
'time'=>'2019-09-21',
'content'=>'我喜欢这个剧',
'img'=>'au_1.jpeg'
],
[
'mov_id'=>4,
'name'=>'小黑',
'time'=>'2019-09-22',
'content'=>'这个是什么啊',
'img'=>'au_2.jpeg'
],
[
'mov_id'=>4,
'name'=>'小黑',
'time'=>'2019-09-22',
'content'=>'不***',
'img'=>'au_2.jpeg'
],
];
//因为是一个二维数组,所以使用foreach循环数组,以便取数据方便
foreach($comment as $value){
$insert_com='insert into `comment` set `mov_id`=:mov_id,`name`=:name,`time`=:time,`content`=:content,`img`=:img';
$stmt_insert_com=$pdo->prepare($insert_com);
$stmt_insert_com->bindParam('mov_id',$value['mov_id'],PDO::PARAM_INT);
$stmt_insert_com->bindParam('name',$value['name'],PDO::PARAM_STR);
$stmt_insert_com->bindParam('time',$value['time'],PDO::PARAM_STR);
$stmt_insert_com->bindParam('content',$value['content'],PDO::PARAM_STR);
$stmt_insert_com->bindParam('img',$value['img'],PDO::PARAM_STR);
if($stmt_insert_com->execute()){
if($stmt_insert_com->rowCount()>0){
echo '数据添加了'.$stmt_insert_com->rowCount().'条,最后一条的id是'.$pdo->lastInsertId().'<br>';
}
}
}点击 "运行实例" 按钮查看在线实例

//更新评论数据,
$up='UPDATE `comment` SET `name`=:name WHERE `com_id`>:com_id';
$stmt_up=$pdo->prepare($up);
$name='小紫';
$com_id=4;
$stmt_up->bindParam('name',$name,PDO::PARAM_STR);
$stmt_up->bindParam('com_id',$com_id,PDO::PARAM_INT);
if($stmt_up->execute()){
if($stmt_up->rowCount()>0){
echo '成功更新了'.$stmt_up->rowCount().'条数据';
}
}点击 "运行实例" 按钮查看在线实例

作业:
第一步,获取数据源,连接数据库
$db=[
'type'=>'mysql',
'host'=>'localhost',
'dbname'=>'www.tao.io',
'username'=>'root',
'userpass'=>'root'
];
//创建数据源
$dsn="{$db['type']}:host={$db['host']};dbname={$db['dbname']}";
//连接数据库
//$pdo = new PDO($dsn,$db['username'],$db['userpass']);
try{
$pdo=new PDO($dsn,$db['username'],$db['userpass']);
}catch (PDOException $e){
die('数据库连接失败'.$e->getMessage());
}点击 "运行实例" 按钮查看在线实例
第二步,执行处理查询语句
//第一个,查询网站系统信息
$select_sys='select * from `system` LIMIT 1';
$stmt_sys=$pdo->prepare($select_sys);
if($stmt_sys->execute()){
$sys=$stmt_sys->fetchAll();
foreach($sys as $system){
} //因为取出来的是一个二维数组,就做了一个循环,取出数据
}
//第二个,查询影视的栏目数据
$select_cate='select * from `category`';
$stmt_cate=$pdo->prepare($select_cate);
if($stmt_cate->execute()){
$cates=$stmt_cate->fetchAll();
};
//第三个,查询影视详情
$select_movie='select * from `movies` order by `mov_id` desc';
$stmt_movie=$pdo->prepare($select_movie);
if($stmt_movie->execute()){
$movies=$stmt_movie->fetchAll();
}
//第四个,查询评论
$select_com='select * from `comment` order by `com_id` desc ';
$stmt_com=$pdo->prepare($select_com);
if($stmt_com->execute()){
$comment=$stmt_com->fetchAll();
}点击 "运行实例" 按钮查看在线实例
最后结果从页面上来看是没有问题的,应该来说是没有问题吧!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号