pdo简单入门学习

<?php
        //开始创建PDO对象
        $dsn = "mysql:host=localhost;dbname=test";
        $username = "root";
        $password = "111111";
        $db = new PDO($dsn, $username, $password);
        //print_r($db);打印是一个资源
        //默认这个不是长连接,如果需要数据库长连接,需要最后加一个参数:array(PDO::ATTR_PERSISTENT => true) 变成这样:
        //$db = new PDO($dsn, 'root', '', array(PDO::ATTR_PERSISTENT => true));

        //查询数据
        //$db->query()方法来查询数据
        //获取全部数据
        $rs = $db->query("select * from pdo_test");
        while($row = $rs->fetch()){
            //print_r($row);
        }
        //或者用以下方式也可以
        $rs = $db->query("select * from pdo_test");
        $row = $rs->fetchAll();
        //print_r($row);
	打印结果如图
	
        //我们看里面的记录,数字索引和关联索引都有,浪费资源,我们只需要关联索引的:实例代码如下

        $db->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER);
        $rs = $db->query("SELECT * FROM pdo_test");
        $rs->setFetchMode(PDO::FETCH_ASSOC);
        $result_arr = $rs->fetchAll();
        print_r($result_arr);

        //setAttribute() 方法是设置部分属性,主要属性如下:
        //PDO::CASE_LOWER -- 强制列名是小写
        //PDO::CASE_NATURAL -- 列名按照原始的方式
        //PDO::CASE_UPPER -- 强制列名为大写

        //setFetchMode方法来设置获取结果集的返回值的类型,同样类型还有:
        //PDO::FETCH_ASSOC -- 关联数组形式
        //PDO::FETCH_NUM -- 数字索引数组形式
        //PDO::FETCH_BOTH -- 两者数组形式都有,这是缺省的
        //PDO::FETCH_OBJ -- 按照对象的形式,类似于以前的 mysql_fetch_object()



        //添加数据
        //$sql = "insert into pdo_test (username,password) values ('heihei','123456'),('heihei','123456')";
        //print_r($pdo->exec($sql));//打印是返回执行这条语句影响的行数返回int型数据

        //批量插入多条语句,可以用语句预执行,形成执行模板
        $sql ="insert into pdo_test (username,password) values (?,?)";
        //先准备,接下来我将执行一大批类似的语句
        $sta = $db->prepare($sql);

        for($i=1;$i<=10;$i++){
            $arr = array('username'.$i,'password'.$i);
            $sta->execute($arr);
        }

        【总结】
        //查询操作主要是PDO::query()、PDO::exec()、PDO::prepare()。PDO::query()主要是用于有记录结果返回的操作,特别是SELECT操作,PDO::exec()主要是针对没有结果集合返回的操作,比如INSERT、UPDATE、DELETE等操作,它返回的结果是当前操作影响的列数。PDO::prepare()主要是预处理操作,需要通过$rs->execute()来执行预处理里面的SQL语句,这个方法可以绑定参数,功能比较强大,不是本文能够简单说明白的,大家可以参考手册和其他文档。

        //获取结果集操作主要是:PDOStatement::fetchColumn()、PDOStatement::fetch()、PDOStatement::fetchALL()。PDOStatement::fetchColumn() 是获取结果指定第一条记录的某个字段,缺省是第一个字段。PDOStatement::fetch() 是用来获取一条记录,PDOStatement::fetchAll()是获取所有记录集到一个中,获取结果可以通过PDOStatement::setFetchMode来设置需要结果集合的类型。

        //另外有两个周边的操作,一个是PDO::lastInsertId()和PDOStatement::rowCount()。PDO::lastInsertId()是返回上次插入操作,主键列类型是自增的最后的自增ID。PDOStatement::rowCount()主要是用于PDO::query()和PDO::prepare()进行DELETE、INSERT、UPDATE操作影响的结果集,对PDO::exec()方法和SELECT操作无效


?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值