<?php
$dbms='mysql'; //数据库类型
$host='localhost'; //数据库主机名
$dbName='test'; //使用的数据库
$user='root'; //数据库连接用户名
$pass=''; //对应的密码
$dsn="$dbms:host=$host;dbname=$dbName";
try {
$dbh = new PDO($dsn, $user, $pass); //初始化一个PDO对象
echo "连接成功<br/>";
/*你还可以进行一次搜索操作
foreach ($dbh->query('SELECT * from FOO') as $row) {
print_r($row); //你可以用 echo($GLOBAL); 来看到这些值
}
*/
$dbh = null;
} catch (PDOException $e) {
die ("Error!: " . $e->getMessage() . "<br/>");
}
//默认这个不是长连接,如果需要数据库长连接,需要最后加一个参数:array(PDO::ATTR_PERSISTENT => true) 变成这样:
$db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));
?>
大类 | 说明 |
---|---|
extension=pdo.so | 在 Unix 或Unix系统上需要安装 扩展 |
extension=php_pdo.dll | Windows 用户,PDO 和所有主要的驱动作为共享扩展随 PHP 一起发布,要激活它们只需简单地编辑 php.ini 文件,并添加扩展;除此之外还需要配置相关数据库的扩展;extension=php_pdo_firebird.dll;extension=php_pdo_informix.dll;extension=php_pdo_mssql.dll;extension=php_pdo_mysql.dll;extension=php_pdo_oci.dll;extension=php_pdo_oci8.dll;extension=php_pdo_odbc.dll;extension=php_pdo_pgsql.dll;extension=php_pdo_sqlite.dll |
预定义常量 | "PHP PDO预定义常量" |
PHP PDO连接连接管理 | "PHP PDO连接连接管理" |
PHP PDO 事务与自动提交 | "PHP PDO 事务与自动提交" |
PHP PDO 预处理语句与存储过程 | "PHP PDO 预处理语句与存储过程" |
PHP PDO 错误与错误处理 | "PHP PDO 错误与错误处理" |
PHP PDO 大对象 (LOBs) | 大对象 |
PDO 类:
方法名 | 说明 |
---|---|
PDO::beginTransaction | — 启动一个事务 |
PDO::commit | — 提交一个事务 |
PDO::__construct | — 创建一个表示数据库连接的 PDO 实例 |
PDO::errorCode | — 获取跟数据库句柄上一次操作相关的 SQLSTATE |
PDO::errorInfo | — 返回最后一次操作数据库的错误信息 |
PDO::exec | — 执行一条 SQL 语句,并返回受影响的行数 |
PDO::getAttribute | — 取回一个数据库连接的属性 |
PDO::getAvailableDrivers | — 返回一个可用驱动的数组 |
PDO::inTransaction | — 检查是否在一个事务内 |
PDO::lastInsertId | — 返回最后插入行的ID或序列值 |
PDO::prepare | — 备要执行的SQL语句并返回一个 PDOStatement 对象 |
PDO::query | — 执行 SQL 语句,返回PDOStatement对象,可以理解为结果集 |
PDO::quote | — 为SQL语句中的字符串添加引号。 |
PDO::rollBack | — 回滚一个事务 |
PDO::setAttribute | — 设置属性 |
PDOStatement 类:
方法名 | 说明 |
---|---|
PDOStatement::bindColumn | — 绑定一列到一个 PHP 变量 |
PDOStatement::bindParam | — 绑定一个参数到指定的变量名 |
PDOStatement::bindValue | — 把一个值绑定到一个参数 |
PDOStatement::closeCursor | — 关闭游标,使语句能再次被执行。 |
PDOStatement::columnCount | — 返回结果集中的列数 |
PDOStatement::debugDumpParams | — 打印一条 SQL 预处理命令 |
PDOStatement::errorCode | — 获取跟上一次语句句柄操作相关的 SQLSTATE |
PDOStatement::errorInfo | — 获取跟上一次语句句柄操作相关的扩展错误信息 |
PDOStatement::execute | — 执行一条预处理语句 |
PDOStatement::fetch | — 从结果集中获取下一行 |
PDOStatement::fetchAll | — 返回一个包含结果集中所有行的数组 |
PDOStatement::fetchColumn | — 从结果集中的下一行返回单独的一列。 |
PDOStatement::fetchObject | — 获取下一行并作为一个对象返回。 |
PDOStatement::getAttribute | — 检索一个语句属性 |
PDOStatement::getColumnMeta | — 返回结果集中一列的元数据 |
PDOStatement::nextRowset | — 在一个多行集语句句柄中推进到下一个行集 |
PDOStatement::rowCount | — 返回受上一个 SQL 语句影响的行数 |
PDOStatement::setAttribute | — 设置一个语句属性 |
PDOStatement::setFetchMode | — 为语句设置默认的获取模式。 |
$atime=5;
$pdo=new PDO('mysql:host=127.0.0.1;dbname=test1','root','root');
$stmt=$pdo->prepare('select * from test where atime>:atime');
$stmt->bindParam(':atime',$atime);
$stmt->execute();
$stmt=$pdo->prepare('select * from test where atime>:atime');
$stmt->bindParam(':atime',$atime);
$stmt->execute();
查询单条数据
$a=$stmt->fetch(PDO::FETCH_ASSOC);//关联数组print_r($a);
$a=$stmt->fetch(PDO::FETCH_LAZY);//只能用于单条查询
查询结果结构
PDORow Object
(
[queryString] => select * from test where atime>:atime
[id] => 7
[aname] => aa
[atime] => 23
)
查询多条数据
$a=$stmt->fetchAll(PDO::FETCH_ASSOC);//关联数组
索引键
$a=$stmt->fetchAll(PDO::FETCH_NUM);//索引键
既有索引键也有关联键
$a=$stmt->fetchAll(PDO::FETCH_BOTH);//既有索引键也有关联键
查询返回结果格式
Array
(
[0] => Array
(
[id] => 7
[0] => 7
[aname] => aa
[1] => aa
[atime] => 23
[2] => 23
)
[1] => Array
(
[id] => 8
[0] => 8
[aname] => aa
[1] => aa
[atime] => 23
[2] => 23
)