首页 > 代码库 > PDO对象

PDO对象

一、PDO对象
1.调整PDO行为
2.设置错误处理模式
3.使用POD执行SQL语句
<?php
//写一个data.txt 文件,每一行都是一个user数据,如何遍历它并把数据插入到数据库中
try {
    $dsn = "mysql:host=localhost; dbname=jkxy";
    $name = "root"; // 数据库的登录用户名
    $pwd = ""; // 数据库的登录密码
    
    $pdo = new PDO ( $dsn, $name, $pwd );
    
    // PDO::ATTR_ERRMODE = 3, PDO::ERRMODE_EXCEPTION = 2 都是访问常量
    // $pdo -> setAttribute(PDO::ATTR_ERRMODE); 设置PDO的行为属性
    // echo $pdo -> getAttribute(PDO::ATTR_ERRMODE); 得到PDO行为属性的值
    $pdo -> setAttribute ( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );// 设置错误处理模式, 设置错误模为异常处理模式
    $pdo -> setAttribute ( PDO::ATTR_AUTOCOMMIT, 0 ); //设置自动提交???这个有点不懂,0为关闭,1位开启
    $pdo -> setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); //设置字符集返回的数组类型,可以不设置,因为可以在提取结果集的时候再设置它
    var_dump ( $pdo );
    
    /*
     * 这是插入数据的代码
    $username = "user88";
    $pwd = md5(123456);
    $email = "user88@qq.com";
    $sql = "INSERT INTO user(username,pwd,email) VALUE(‘{$username}‘, ‘{$pwd}‘, ‘{$email}‘)";
    $affected  = $pdo -> exec($sql); //返回影响的行数
    
    //什么是影响行数的,什么是有结果集的
    $pdo -> exec(); //执行有影响行数的语句,增删改是有影响行数的,返回影响的行数
    $pdo -> query(); //执行有结果集的语句,查询就是有结果的,返回一个object(PDOStatement)对象,所有的查询数据都存在这个对象里面
    */
    
    $sql = "SELECT * FROM user WHERE id < 5";
    $stmt = $pdo -> query($sql); //返回object(PDOStatement)
    
    foreach($stmt as $v){ //用foreach()来遍历对象内容为数组,每次遍历一行数据,一行数据就是一个数组
        echo "{$v[‘id‘]} - {$v[‘username‘]}";
    }
    
} catch ( PDOException $e ) {
    
    echo $e -> getMessage ();
    echo "<hr>";
    echo $e -> getFile ();
    echo "<hr>";
    echo $e -> getLine ();
    echo "<hr>";
    echo $e -> getCode ();
}

 

PDO对象