2. PDO 的使用

来源:互联网 发布:淘宝店铺买卖 编辑:程序博客网 时间:2024/06/05 20:08

这里写图片描述
这里写图片描述


1. exec()
这里写图片描述

1.1 建表<?phptry {    $dsn = 'mysql:host=localhost;dbname=test';    $username = 'root';    $password = '123456';    $pdo = new PDO($dsn,$username,$password);    //exec();执行一条 sql 语句,并返回受影响的记录的条数,如果没有受影响返回0    //exec 对 select 没有作用    $sql = <<<EOFcreate table if not exists user(    id int unsigned auto_increment key,    username varchar(20) not null unique,    password char(32) not null,    email varchar(32) not null)EOF;    $res = $pdo->exec($sql);    var_dump($res);} catch (PDOException $e) {    echo $e->getMessage();}返回 0
插入记录://插入一条记录    //$sql = 'insert user(username,password,email) values("wjh",md5("wjh"),"188@qq.com")';    //$res = $pdo->exec($sql);  返回 1    //插入多条记录$sql = <<<EOF    insert user(username,password,email) values("wjh1",md5("wjh"),"188@qq.com"),    ("wjh2",md5("wjh"),"188@qq.com"),    ("wjh3",md5("wjh"),"188@qq.com")EOF;    $res = $pdo->exec($sql);  // 返回 3    $pdo->lastInsertId();  //返回 最后一条插入记录的 ID

这里写图片描述

更新记录:    $sql = 'update user set username="immoc" where id=3';    $res = $pdo->exec($sql);
删除记录    $sql = 'delete from user where id=2';    $res = $pdo->exec($sql);
获取错误信息://删除记录    $sql = 'delete from user12 where id=2';    $res = $pdo->exec($sql);    if ($res === false) {        //返回数据库句柄上一次操作相关的SQLSTATE的值        echo $pdo->errorCode();        echo '<br/>';        //返回数据库句柄上一次操作错误信息的数组,数组包括3个单元        //1. 0 => SQLSTATE        //2. 1 => 错误编号,CODE        //3. 3 => 信息        $errInfo = $pdo->errorInfo();        var_dump($errInfo);    } else {        var_dump($res);    }

这里写图片描述
这里写图片描述


2. query()

try {    $pdo = new PDO('mysql:host=localhost;dbname=test','root','123456');    //$sql = 'select * from user where id=2;';    $sql = 'select * from user;';    //执行 sql 语句,返回PDOStatement对象    $stmt = $pdo->query($sql);    foreach ($stmt as $row) {        echo $row['id'];        echo '<br/>';        echo $row['username'];        echo '<br/>';        echo $row['password'];        echo '<br/>';        echo $row['email'];        echo '<br/>';    }} catch (PDOException $e) {    echo $e->getMessage();}

3.prepare() and execute()

try {    $pdo = new PDO('mysql:host=localhost;dbname=test','root','123456');    $sql = "select * from user";    //返回一个 PDOStatement 对象    //prepare($sql);准备 sql 语句    $stmt = $pdo->prepare($sql);    //设置默认的返回模式    $stmt->setFetchMode(PDO::FETCH_OBJ);    // execute(); 执行预处理语句,返回布尔值    $res = $stmt->execute();    //取出结果集取出一条记录//    $row = $stmt->fetch();    if ($res) {        while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {            var_dump($row );        }    }    //用 fetchAll()    /*$rows = $stmt->fetchAll();    var_dump($rows);*/} catch (PDOException $e) {    echo $e->getMessage();}

这里写图片描述
这里写图片描述
这里写图片描述


4.getAttribute() and setAttribute()

try {    $dsn = 'mysql:host=localhost;dbname=test';    $username = 'root';    $password = '123456';    $pdo = new PDO($dsn,$username,$password);    // 默认为 1 ,自动提交    echo '自动提交 : ' . $pdo->getAttribute(PDO::ATTR_AUTOCOMMIT);    echo '<br/>';    echo '默认错误处理模式 :' . $pdo->getAttribute(PDO::ATTR_ERRMODE);    echo '<br/>';    $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,0);    echo '自动提交 : ' . $pdo->getAttribute(PDO::ATTR_AUTOCOMMIT);} catch (PDOException $e) {    echo $e->getMessage();}

这里写图片描述
这里写图片描述
这里写图片描述


<?phptry {    $dsn = 'mysql:host=localhost;dbname=test';    $username = 'root';    $password = '123456';    $pdo = new PDO($dsn,$username,$password);    $attArr = array(        'AUTOCOMMIT',        'CASE',        'CLIENT_VERSION',        'CONNECTION_STATUS',        'DRIVER_NAME',        'ERRMODE',        'ORACLE_NULLS',        'PERSISTENT',        'PREFETCH',        'SERVER_INFO',        'SERVER_VERSION',        'TIMEOUT'    );    foreach ($attArr as $attr) {        echo "PDO_ATTR_$attr : ";        echo $pdo->getAttribute(constant("PDO::ATTR_$attr"));        echo '<br/>';    }} catch (PDOException $e) {    echo $e->getMessage();}

这里写图片描述

0 0
原创粉丝点击