PDO的结果集对象方法、预处理语句、数据库连接属性

PDO中的结果集对象方法

方法名 注释
execute() 执行一条预处理语句
rowCount() 返回上一个SQL语句影响的行数
fetch() 从结果集中获取一行
fetchAll() 返回一个包含结果集中所有行的数组
setFetchMode() 为语句设置默认的获取模式
fetchColumn() 从结果集中的下一行返回单独的一列
fetchObject() 获取下一行并作为一个对象返回
bindParam() 绑定一个参数到指定的变量名
bindValue() 把一个值绑定到一个参数

这个跟mysqli中的mysqli_fetch_array()这些方法基本都是相同的功能,只是在不同形式下的不同实现和不同方式的调用而已,返回的数据结果都是一样的

预处理形式的SQL查询

$sql = "select * from users where name = '小明';";

准备一个预处理语句,方法执行完毕后返回的是一个PDO的stmt对象(PDOStatement 对象)
prepare方法是用来准备一条预处理语句的方法

$stmt = $pdo->prepare($sql);

execute方法是用来执行预处理语句的,执行成功返回bool的true

$res = $stmt->execute();

拿数据是通过PDOStatement对象中对的一些方法去获取数据
示例:

if ($res){
        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
            print_r($row);
            echo '<br/>';
        }
    }else{
        echo '预处理语句执行失败';
    }

取出数据的格式,例如返回的是索引还是关联数组,你可以直接在获取数据的方法中传入PDO这个类的常量,有很多个常量值,具体的自己百度查

取出的数据格式,例如返回的是索引数组还是关联数组,可以通过PDOStatement中的setFetchMode()方法来进行设置

$stmt->setFetchMode(PDO::FETCH_BOTH);这里设置默认索引和关联一起返回

设置数据库连接属性

  • 数据库连接属性指的是例如自动提交、持久连接等

代码示例:

在实例化PDO类的时候,可以通过第四个参数直接设置数据库连接属性

$options = array(
        PDO::ATTR_AUTOCOMMIT=>0,
        PDO::ATTR_ERRMODE=>0
    );
    $pdo = new PDO('mysql:host=localhost;dbname=pdotest;','root','',$options);
    $pdo->query('set names utf8;');

获取获取数据库连接属性:

echo '自动提交功能状态:' . $pdo->getAttribute(PDO::ATTR_AUTOCOMMIT);
   echo '<br/>';
   echo 'PDO的错误处理模式:' . $pdo->getAttribute(PDO::ATTR_ERRMODE);
   echo '<br/>';

设置数据库连接属性:

    $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,0);
    echo '关闭自动提交';
    echo '<br/>';
    echo '自动提交功能状态:' . $pdo->getAttribute(PDO::ATTR_AUTOCOMMIT);
    echo '<br/>';
    $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,1);
    echo '开启自动提交';
    echo '<br/>';
    echo '自动提交功能状态:' . $pdo->getAttribute(PDO::ATTR_AUTOCOMMIT);
    echo '<hr/>';

如何配置常用的数据库连接属性,示例:

$attrArr = array(
       'AUTOCOMMIT','ERRMODE','CASE','PERSISTENT','TIMEOUT','ORACLE_NULLS',
       'SERVER_INFO','SERVER_VERSION','CLIENT_VERSION','CONNECTION_STATUS'
   );

   foreach ($attrArr as $attr){
       echo "PDO_ATTR_{$attr}:";
       //constant()函数是返回一个常量的值
       echo @$pdo->getAttribute(constant("PDO::ATTR_{$attr}"));
       echo '<br/>';
   }

数据库连接属性其实没多少东西,主要就是在初始化项目的时候,对数据库的一些连接的属性进行一些项目化的设置,具体的看项目需求进行设置

猜你喜欢

转载自blog.csdn.net/a2522086223/article/details/85223147