• 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);

  • 相关阅读:
    水平拖拽滚动条
    垂直拖拽滚动条
    网页特效_拖拽案例
    js实现倒计时
    权限控制
    Eclipse 项目有红感叹号
    JBPM简单介绍
    开博有感
    各种正则表达式
    Python中读取目录里的文件并按排序列出
  • 原文地址:https://www.cnblogs.com/hanyouchun/p/3993297.html
Copyright © 2020-2023  润新知