php pdo连接mysql数据库

13 篇文章 0 订阅

细雨梦回鸡塞远,小楼吹彻玉笙寒。

这篇博客也拖了好几天了,今天终于写出来了,拖延症真要命。
为什么要用pdo呢?因为之前的mysql扩展在php新的版本中,渐渐被淘汰了,原因呢,有很多,比较严重的就是,mysql开发组不进行迭代了,还有就是这个mysql不支持参数绑定之类的东西。so,就要用新的来代替他了

具体原因看这个

预编译有很多好的地方
1. 安全一点,占位符有指定类型,他也仅仅是作为参数的值传入到sql当中的。
2.多次插入提高效率。因为sql已经编译过了,直接绑定参数,减少sql语句编译的时间

window下先去php.ini中把pdo的扩展前面的分号去掉,然后看phpinfo()中是否有对应信息,有了就可以用了。记得重启apache!!

<?php
/*
 *  pdo 练习  2017/3/27
 *
 *  PDO::exec()主要是针对没有结果集合返回的操作,比如INSERT、UPDATE、DELETE等操作,它返回的结果是当前操作影响的列数。
 *  PDO::query()主要是用于有记录结果返回的操作,特别是SELECT操作
 *  PDO::prepare()主要是预处理操作,需要通过$rs->execute()来执行预处理里面的SQL语句,这个方法可以绑定参数,功能比较强大
 *
 * */



try{
    $dsn = "mysql:host=localhost;dbname=yu";
    $db = new PDO($dsn, 'root', 'root');
    //关闭自动提交
    $db->setAttribute(PDO::ATTR_AUTOCOMMIT, 0);

//   查询操作  select
        $rs = $db->query("SELECT * FROM about");
        $data = $rs->fetchAll();
        print_r($data);die;
//   插入操作   insert
      $sql = "insert into about set picture='/picture/test.jpg',desc1='the perfect day',status='1'";
      $res = $db->exec($sql);
      print_r($res);die;
//    修改操作  udpate
        $sql = "update about set picture='/picture/test1.jpg' where id=4";
        $res = $db->exec($sql);
        print_r($res);die;
//     删除操作  delete
        $sql = "delete from about where id=4";
        $res = $db->exec($sql);
        print_r($res);die;
//      绑定参数    如果sql'语句中用的是?号作为占位符,那么在bindParam参数中,第一个参数就以占位符的顺序填写,比如1代表第一个?号的值
        $obj = $db->prepare("select * from about where id = ?");
        $id = 3;
        $obj->bindParam(1,$id,PDO::PARAM_INT);
        $obj->execute();
        $result = $obj->fetchALL(PDO::FETCH_ASSOC);
        var_dump($result);
//      绑定参数   如果sql语句中用的是 " :变量名  "作为占位符,那么bingParam参数中,第一个参数就是“ :变量名 ”
//      bindParam函数:par1,占位符标识,par2:值(必须以变量形式体现,否则报:Cannot pass parameter 2),par3:值的模式
        $obj = $db->prepare("select * from about where id = :id");
        $id     = 3;
        $obj->bindParam(':id',$id,PDO::PARAM_INT);
        $obj->execute();
        $result = $obj->fetchALL(PDO::FETCH_ASSOC);
        var_dump($result);
//       事务  
//      MyIsAM不支持事务!!!
        $db->beginTransaction();
        $sql = "update about set picture='643' where id=5";
        $res = $db->exec($sql);
        echo $res;
        $db->rollBack();   //回滚
        $db->commit();   //提交
}catch (PDOException  $e){
    print "Error is:".$e->getMessage()."<br/>";
}



?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值