参考网页:http://php.net/manual/zh/intro.pdo.php
简介:
PHP 数据对象 (PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口。实现 PDO 接口的每个数据库驱动可以公开具体数据库的特性作为标准扩展功能。 注意利用 PDO 扩展自身并不能实现任何数据库功能;必须使用一个 具体数据库的 PDO 驱动 来访问数据库服务。
PDO 提供了一个 数据访问 抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据。 PDO 不不提供 数据库 抽象层;它不会重写 SQL,也不会模拟缺失的特性。如果需要的话,应该使用一个成熟的抽象层。
1. 查看PDO是否开启:
echo phpinfo();
运行后再界面中找到pdo相关项。
2. PDO对象初始化:
参照:http://php.net/manual/zh/pdo.construct.php
try{
$pdo = new PDO("mysql:host=localhost; dbname=myapp", "root","");
}catch (PDOException $e){
die('Connection failed:'.$e->getMessage());
}
echo $pdo->getAttribute(PDO::ATTR_CLIENT_VERSION);
print_r($pdo);
3. PDO 对象应用:
PDO成员方法:
- query($sql); //用于执行SQL语句。返回PDOStatement对象
- exec($ sql); // 用于执行增删改操作,返回影响行数
- setAttribute();//设置一个“数据连接对象的属性”。
- fetchAll(); //解析数据;
实例:
<?php
//1.连接数据库
try{
$pdo = new PDO("mysql:host=localhost; dbname=myapp", "root","");
}catch (PDOException $e){
die('Connection failed:'.$e->getMessage());
}
//echo $pdo->getAttribute(PDO::ATTR_CLIENT_VERSION);
//print_r($pdo);
//2.执行query查询操作,返回一个预处理对象
$sql = "SELECT * FROM users";
$stmt = $pdo->query($sql);
$list = $stmt->fetchAll(PDO::FETCH_ASSOC);
//print_r($list);
//3.解析数据(把所有数据解析出来)
foreach($list as $val){
echo $val['id'].'...'.$val['name'].'...'.$val['age'].'<br>';
}
//4.释放资源
$stmt = null;
$pdo = null;
快捷的操作方法:参考网页:http://php.net/manual/zh/pdo.query.php
<?php
//1.连接数据库
try{
$pdo = new PDO("mysql:host=localhost; dbname=myapp", "root","");
}catch (PDOException $e){
die('Connection failed:'.$e->getMessage());
}
//echo $pdo->getAttribute(PDO::ATTR_CLIENT_VERSION);
//print_r($pdo);
//2.执行query查询操作,返回一个预处理对象
$sql = "SELECT * FROM users";
//print_r($list);
foreach ($pdo->query($sql) as $val) {
echo $val['id'].'...'.$val['name'].'...'.$val['age'].'<br>';
}
插入一条数据:
<?php
//1.连接数据库
try{
$pdo = new PDO("mysql:host=localhost; dbname=myapp", "root","");
}catch (PDOException $e){
die('Connection failed:'.$e->getMessage());
}
//echo $pdo->getAttribute(PDO::ATTR_CLIENT_VERSION);
//print_r($pdo);
//2.执行query查询操作,返回一个预处理对象
//$sql = "SELECT * FROM users";
//foreach ($pdo->query($sql) as $val) {
// echo $val['id'].'...'.$val['name'].'...'.$val['age'].'<br>';
//}
//插入一条语句
$sql = "INSERT INTO users(name, age) VALUES ('xy', 11)";
$res = $pdo->exec($sql);
if($res){
echo "sucess";
}else{
echo mysql_error();
}
删除一条数据:
//删除一条数据
$sql = "DELETE FROM users WHERE id=5";
$res = $pdo->exec($sql);
if($res){
echo "sucess";
}else{
echo mysql_error();
}
修改一条数据:
$sql = "UPDATE users SET name='ne' WHERE id=3";
$res = $pdo->exec($sql);
if($res){
echo "sucess";
}else{
echo mysql_error();
}