zoukankan      html  css  js  c++  java
  • PDO笔记

    <?php
    /*
    * 查询操作主要是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操作无效。
    * */

    $dsn = "mysql:host=localhost;dbname=demo";
    $user = "root";
    $pwd = "";

    try
    {
    $pdo = new PDO($dsn,$user,$pwd);
    //设置数据库为持久连接
    $pdo->setAttribute(PDO::ATTR_PERSISTENT,true);
    //设置抛出错误
    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    //设置当字符串为空时转换为sql的null
    $pdo->setAttribute(PDO::ATTR_ORACLE_NULLS,true);

    }catch (PDOException $e)
    {
    exit("数据库连接失败".$e->getMessage());
    }

    //exec()执行sql语句,并返还影响的行数,一般用于insert,delete,update
    //$sql_insert = "insert into wp_terms set name='mysqlPDO'";
    //$row_insert = $pdo->exec($sql_insert);

    //query()执行sql语句,如果执行成功返还一个PDOStatement对象,一般用于select
    //$sql_select = "select * from wp_terms";
    //$row_select = $pdo->query($sql_select);

    //rowCount()获取搜索到的结果中总的条数
    //echo $row_select->rowCount();


    /*
    *fetch(pams) 方法用于从结果集中获取 一行 结果
    *fetchAll(pams) 全部取出数据
    *pams参数:
    * PDO::FETCH_BOTH (默认) 关联及数字索引数组形式都有
    * PDO::FETCH_ASSOC 关联索引(字段名)数组形式
    * PDO::FETCH_ASSOC 关联索引(字段名)数组形式
    */
    //$result=$row_select->fetch(PDO::FETCH_ASSOC);
    //var_dump($result);

    //$result=$row_select->fetchAll(PDO::FETCH_ASSOC);
    //var_dump($result);

    //fetchColumn 获取单一字段
    //$rs = $db->query("SELECT COUNT(*) FROM foo");
    //$col = $rs->fetchColumn();
    //echo $col;

    /*
    * prepare()预处理
    * 方法 bindParam() 和 bindValue() 非常相似。 唯一的区别就是前者使用一个PHP变量绑定参数,而后者使用一个值。
    * */
    //$sql_prepare = "select * from wp_terms where name=?";
    $sql_prepare = "select * from wp_terms where name!=:name";
    $pre = $pdo->prepare($sql_prepare);

    $parms = "python";
    //$pre -> bindParam(1,$parms); sql中占位符为?是,可用1,2,3,4来替换
    $pre -> bindValue(":name","python"); //指定名称是,必须用名称替换


    $pre->execute();
    $result = $pre->fetchAll(PDO::FETCH_ASSOC);

    var_dump($result);

  • 相关阅读:
    P1268 树的重量
    P2419 [USACO08JAN]牛大赛Cow Contest
    P1306 斐波那契公约数
    P2905 [USACO08OPEN]农场危机Crisis on the Farm
    P1081 开车旅行
    P2906 [USACO08OPEN]牛的街区Cow Neighborhoods
    P1550 [USACO08OCT]打井Watering Hole
    P2746 [USACO5.3]校园网Network of Schools
    P1613 跑路
    【BZOJ4868】期末考试(整数三分)
  • 原文地址:https://www.cnblogs.com/hanyouchun/p/3993297.html
Copyright © 2011-2022 走看看