PHP中关于PDO的使用
-------------- COPY ------------------
$dsn = 'mysql:dbname=renxing;host=localhost';
$user_name = 'root';
$user_psw = 'root';
try{
$pdo = new PDO($dsn, $user_name, $user_psw);
}catch(PDOException $e){
echo 'PDO连接失败:'.$e->getMessage();
}
$query="delete from employee where id>4";
$affCount=$pdo->exec($query);//执行查询
echo "受影响的行数为:".$affCount;
---------------- END COPY -----------
[query]
-------------- COPY ------------------
$query="select * from employee";
//输出结果集中的数据
foreach ( $pdo->query($query) as $row){
echo $row['id'].' ';
echo $row['name'].' ';
echo $row['address'].' ';
echo $row['age'].'<br>';
}
---------------- END COPY -----------
[fetch]
-------------- COPY ------------------
$query="select * from employee";
$result = $pdo->prepare($query);
$result->execute();
$row=$result->fetch(PDO::FETCH_ASSOC);
print_r($row);
---------------- END COPY -----------
<?php
$pdo=new PDO("mysql:dbname=test;host=127.0.0.1;port=3306","root","php");
$pdo=new PDO("mysql:dbname=数据库;host=127.0.0.1;port=3306","root","php",array(PDO::ATTR_PERSISTENT=>true));
$pdo->setAttribute(PDO::ATTR_PERSISTENT,true);//设置数据库连接为持久连接
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);//设置抛出错误
$pdo->setAttribute(PDO::ATTR_ORACLE_NULLS,true);//设置当字符串为空转换为SQL的NULL
$pdo->setAttribute(PDO::ATTR_CASE,PDO::CASE_UPPER);//表字段字符的大小写转换或原样使用列信息
$pdo->query("SET NAMES utf8");//设置数据库编码
$pdo->query(sql语句);//返回PDOStatement对象,一般用于select
$pdo->exec(sql语句);//返回受影响行数,一般用于insert|update|delete
$sm=$pdo->query();
$sm->rowCount()//返回记录数
$pdo=null;//释放资源
while($data=$sm->fetch()){print_r($data);}//只会返回一条数据
$sm->setFetchMode(PDO::FETCH_ASSOC);//只返回关联索引
$data=$sm->fetchAll();//返回所有数据
$sm=$pdo->prepare(sql语句);
$sm->execute();
$data=$sm->fetchColumn();//一般用来进行count统计
将列分发到变量
$sm->bindColumn(数字,变量);
$sm->bindColumn(字段名,变量);
while($data=$sm->fetch(PDO::FETCH_BOUND)){}
替换变量
$sm=$pdo->prepare(":占位变量");
$sm->bindParam(":占位变量",值,PDO::PARAM_INT);
$sm->bindParam(":占位变量",值,PDO::PARAM_STR,12);
$sm->execute();
替换问号占位符
$sm=$pdo->prepare("?");
$sm->bindValue(1,值,PDO::PARAM_INT);//第1个问号
$sm->bindValue(2,值,PDO::PARAM_STR,12);//第2个问号
$sm->execute();
方法
PDO::query()//处理一条SQL语句并返回一个PDOStatement对象
PDO::lastInsertId()//获取插入到表中的最后一条数据的主键值
PDO::prepare()//负责准备执行的SQL语句
PDO::exec()//处理一条SQL语句并返回所影响的行数
PDO::beginTransaction//开始一个事务并标明回滚起始点
PDO::commit//提交一个事务并执行SQL语句
PDO::__construct//构造函数
PDO::errorCode//获取错误码
PDO::errorInfo//获取错误信息
PDO::getAttribute//获取一个数据库连接对象的属性
PDO::getAvailableDrivers//获取有效的PDO驱动器名称
PDO::inTransaction
PDO::quote//为某个SQL语句中的字符串添加引号
PDO::rollBack//回滚一个事务
PDO::setAttribute//为一个数据库连接对象设定属性
PDOStatement::bindColumn//将列分发到变量
PDOStatement::bindParam//替换变量
PDOStatement::bindValue//替换问号占位符
PDOStatement::closeCursor//关闭光标
PDOStatement::columnCount//字段数
PDOStatement::debugDumpParams
PDOStatement::errorCode//获取错误码
PDOStatement::errorInfo//获取错误信息
PDOStatement::execute//执行语句
PDOStatement::fetch//只会返回一条数据
PDOStatement::fetchAll//返回所有数据
PDOStatement::fetchColumn//一般用来进行count统计
PDOStatement::fetchObject
PDOStatement::getAttribute
PDOStatement::getColumnMeta
PDOStatement::nextRowset
PDOStatement::rowCount//记录数
PDOStatement::setAttribute
PDOStatement::setFetchMode
常量
PDO::ATTR_AUTOCOMMIT//是否开启自动提交功能true|false
PDO::ATTR_PREFETCH//设置应用程序提前获取的数据大小[千字节为单位]
PDO::ATTR_TIMEOUT//设置超时之前的等待时间[秒为单位]
PDO::ATTR_SERVER_INFO//包含与数据库特有的服务器信息
PDO::ATTR_SERVER_VERSION//包含与数据库服务器版本号有关的信息
PDO::ATTR_CLIENT_VERSION//包含与数据库客户端版本号有关的信息
PDO::ATTR_CONNECTION_STATUS//设置超时之前的等待时间[秒为单位]
PDO::CASE_LOWER//强制列名是小写
PDO::CASE_UPPER//强制列名为大写
PDO::CASE_NATURAL//列名按照原始的方式
PDO::FETCH_ASSOC//关联数组形式
PDO::FETCH_NUM//数字索引数组形式
PDO::FETCH_BOTH//两者数组形式都有
PDO::FETCH_OBJ//按照对象的形式
PDO::PARAM_BOOL
PDO::PARAM_NULL
PDO::PARAM_INT
PDO::PARAM_STR
PDO::PARAM_LOB
PDO::PARAM_STMT
PDO::PARAM_INPUT_OUTPUT
PDO::FETCH_LAZY
PDO::FETCH_NAMED
PDO::FETCH_BOUND
PDO::FETCH_COLUMN
PDO::FETCH_CLASS
PDO::FETCH_INTO
PDO::FETCH_FUNC
PDO::FETCH_GROUP
PDO::FETCH_UNIQUE
PDO::FETCH_KEY_PAIR
PDO::FETCH_CLASSTYPE
PDO::FETCH_SERIALIZE
PDO::FETCH_PROPS_LATE
PDO::ATTR_ERRMODE
PDO::ATTR_CASE
PDO::ATTR_CURSOR_NAME
PDO::ATTR_CURSOR
PDO::ATTR_DRIVER_NAME
PDO::ATTR_ORACLE_NULLS
PDO::ATTR_PERSISTENT
PDO::ATTR_STATEMENT_CLASS
PDO::ATTR_FETCH_CATALOG_NAMES
PDO::ATTR_FETCH_TABLE_NAMES
PDO::ATTR_STRINGIFY_FETCHES
PDO::ATTR_MAX_COLUMN_LEN
PDO::ATTR_DEFAULT_FETCH_MODE
PDO::ATTR_EMULATE_PREPARES
PDO::ERRMODE_SILENT
PDO::ERRMODE_WARNING
PDO::ERRMODE_EXCEPTION
PDO::NULL_NATURAL
PDO::NULL_EMPTY_STRING
PDO::NULL_TO_STRING
PDO::FETCH_ORI_NEXT
PDO::FETCH_ORI_PRIOR
PDO::FETCH_ORI_FIRST
PDO::FETCH_ORI_LAST
PDO::FETCH_ORI_ABS
PDO::FETCH_ORI_REL
PDO::CURSOR_FWDONLY
PDO::CURSOR_SCROLL
PDO::ERR_NONE
PDO::PARAM_EVT_ALLOC
PDO::PARAM_EVT_FREE
PDO::PARAM_EVT_EXEC_PRE
PDO::PARAM_EVT_EXEC_POST
PDO::PARAM_EVT_FETCH_PRE
PDO::PARAM_EVT_FETCH_POST
PDO::PARAM_EVT_NORMALIZE
?>