Blogger Information
Blog 30
fans 1
comment 0
visits 24304
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PDO数据库学习 20190925
阿乎乎的学习
Original
795 people have browsed it

前两天学习了数据库的增删改查,这两天学习了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>';
        }
    }
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

222223.JPG

实例

//更新评论数据,
$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().'条数据';
    }
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

777.JPG



作业:

第一步,获取数据源,连接数据库

实例

$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();
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

最后结果从页面上来看是没有问题的,应该来说是没有问题吧!

Correction status:qualified

Teacher's comments:完成的不错。预想结果 和 实际结果 相同才是对的。继续加油
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post