PDO: php data object
数据库访问抽象层
基于驱动:
1、安装扩展 pdo.dll
2、安装驱动 pdo_mysql.dll
linux 编译时参数:--with-pdo=mysql=/usr/local/mysql
三个类:
PDO类, 数据库连接有关(连接、执行sql)
PDOStatement 处理结果集
PDOException 异常处理类
一些常量
相比mysqli方法少,常量多
1.什么是PDO( PHP Database Object) //数据库抽象层
项目换数据库的时候,所有相关数据库的代码 和 函数库都需要修改。而使用pdo则会非常省事!!
PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据
2.PDO数据库抽象层 原理
3.PDO对象初始化
PDO::__construct ( string $dsn [, string $username [, string $password [, array $driver_options ]]] )
data source name(数据源) 包括 主机、端口、库名、驱动名
创建一个表示连接到请求数据库的数据库连接 PDO 实例。
// 使用mysqli 实例化对象的时候用 $mysqli = new mysqli("localhost", "root", "user", "boolshop");
说那个PDO
<?php
//当然也可以把这些信息放到文件中
$dsn = 'mysql:dbname=test; host=127.0.0.1';
$user = 'root';
$password = '123456';
try{
//第一种方法 直接使用
$pdo = new PDO($dsn, $user, $password);
//第二种方法 引入外部配置文件
//可以把 mysql:dbname=test; host=127.0.0.1 写进下面的配置文件中,然后引入进来
// $pdo = new PDO("uri:mysqlPdo.ini", $user, $password);
//第三种方法 在php的配置文件中写进mysql:dbname=test; host=127.0.0.1 不过我感觉这样做有点冒险啊
// [PDO]
// pdo.dsn.mysqlpdo = "mysql:dbname=test; host=127.0.0.1"
// 然后$pdo = new PDO('mysqlpdo', $user, $password);
}catch(PDOException $e){
die("连接失败".$e->getMessage());
}
var_dump($pdo);
4.pdo对象应用
1.query($sql) //用于执行查询sql语句,返回PDOStatement对象
2.exec($sql) //用于执行增删改查操作,返回影响行数
3.setAttribute(); //设置一个数据库连接对象属性
4.fetchAll(); //解析数据
1.首先连接数据库
.....
2.然后查询数据库 query 返回的是预处理对象
$sql = "select * from a";
$stmt = $pdo->query($sql);
//括号内加上 PDO::FETCH_ASSOC 表示返回的是关联数组,而不是索引数组了
$list = $stmt->fetchAll(PDO::FETCH_ASSOC);
3.解析数据
foreach ($list as $key => $val) {
echo $val['id']."====".$val['num']."<br />";
}
4.释放资源
$stmt = null;
$pdo = null;
有一个快捷的方式 解析全部数据
$sql = "select id, num from a ";
foreach ($pod->query($sql) as $val) {
echo $val['id']."=====".$val['num']."<br />";
}
一步就可以解决了,这里用到了php的底层原理
5.插入语句
//插入
$sql = "insert into a values('m', 888)";
//删除
$sql = "delete from a where id='m'";
//修改
$sql = "update a set num='999' where id='b'";
//exec() 返回受影响的行数
$res = $pdo->exec($sql);
if ($res) {
echo "OK";
}
数据库访问抽象层
基于驱动:
1、安装扩展 pdo.dll
2、安装驱动 pdo_mysql.dll
linux 编译时参数:--with-pdo=mysql=/usr/local/mysql
三个类:
PDO类, 数据库连接有关(连接、执行sql)
PDOStatement 处理结果集
PDOException 异常处理类
一些常量
相比mysqli方法少,常量多
1.什么是PDO( PHP Database Object) //数据库抽象层
项目换数据库的时候,所有相关数据库的代码 和 函数库都需要修改。而使用pdo则会非常省事!!
PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据
2.PDO数据库抽象层 原理
3.PDO对象初始化
PDO::__construct ( string $dsn [, string $username [, string $password [, array $driver_options ]]] )
data source name(数据源) 包括 主机、端口、库名、驱动名
创建一个表示连接到请求数据库的数据库连接 PDO 实例。
// 使用mysqli 实例化对象的时候用 $mysqli = new mysqli("localhost", "root", "user", "boolshop");
说那个PDO
<?php
//当然也可以把这些信息放到文件中
$dsn = 'mysql:dbname=test; host=127.0.0.1';
$user = 'root';
$password = '123456';
try{
//第一种方法 直接使用
$pdo = new PDO($dsn, $user, $password);
//第二种方法 引入外部配置文件
//可以把 mysql:dbname=test; host=127.0.0.1 写进下面的配置文件中,然后引入进来
// $pdo = new PDO("uri:mysqlPdo.ini", $user, $password);
//第三种方法 在php的配置文件中写进mysql:dbname=test; host=127.0.0.1 不过我感觉这样做有点冒险啊
// [PDO]
// pdo.dsn.mysqlpdo = "mysql:dbname=test; host=127.0.0.1"
// 然后$pdo = new PDO('mysqlpdo', $user, $password);
}catch(PDOException $e){
die("连接失败".$e->getMessage());
}
var_dump($pdo);
4.pdo对象应用
1.query($sql) //用于执行查询sql语句,返回PDOStatement对象
2.exec($sql) //用于执行增删改查操作,返回影响行数
3.setAttribute(); //设置一个数据库连接对象属性
4.fetchAll(); //解析数据
1.首先连接数据库
.....
2.然后查询数据库 query 返回的是预处理对象
$sql = "select * from a";
$stmt = $pdo->query($sql);
//括号内加上 PDO::FETCH_ASSOC 表示返回的是关联数组,而不是索引数组了
$list = $stmt->fetchAll(PDO::FETCH_ASSOC);
3.解析数据
foreach ($list as $key => $val) {
echo $val['id']."====".$val['num']."<br />";
}
4.释放资源
$stmt = null;
$pdo = null;
有一个快捷的方式 解析全部数据
$sql = "select id, num from a ";
foreach ($pod->query($sql) as $val) {
echo $val['id']."=====".$val['num']."<br />";
}
一步就可以解决了,这里用到了php的底层原理
5.插入语句
//插入
$sql = "insert into a values('m', 888)";
//删除
$sql = "delete from a where id='m'";
//修改
$sql = "update a set num='999' where id='b'";
//exec() 返回受影响的行数
$res = $pdo->exec($sql);
if ($res) {
echo "OK";
}