博客列表 >PDO数据库学习 20190925

PDO数据库学习 20190925

阿乎乎的学习
阿乎乎的学习原创
2019年09月26日 14:32:30796浏览

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

运行实例 »

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

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

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议