1. PDO简介
PDO是PHP Data Object(PHP数据对象)的简称。
2.PDO的特性
1.编码一致性:PDO提供可用于各种数据库的单一接口
2.灵活性:PDO在运行时必须加载数据库驱动程序,所以不需要每次在使用数据库时,重新配置和重新编译PHP
3.高性能:PDO是用C语言编写的编译为PHP,与用php编写的其他方案相比,虽然其他功能相同,但提供了更高的性能
4.面向对象特性:PDO是利用的PHP5面向对象的特性,可以获得更高效的数据库通信。
注意:PDO扩展只是一个抽象的接口层,利用PDO扩展本身,并不能实现任何数据库的操作,必须使用一个特性的形式把各自的特色表现出来才行。
连接数据库
1.通过参数形式连接数据库(重点掌握此种办法)
//通过参数形式连接数据库
try{
$dsn='mysql:host=localhost;dbname=school';
$username='root';
$password='root';
$pdo=new PDO ($dsn,$username,$password);
var_dump($pdo);
}catch (PDOException $e){
echo $e->getMessage();
};
需要注意:dsn是你的数据源
输出结果:object(PDO)#1 (0) { }
php预处理(问好占位符)
<?php
//phpinfo();
//PDO连接数据库
try{
$pdo= new PDO('mysql:host=localhost;dbname=aaa','root','root');
// $sql=<<<EOF
// CREATE TABLE `a4`(
// `id` INT auto_increment PRIMARY KEY,
// `name` VARCHAR(20),
// `password` VARCHAR(20)
//);
//EOF;
// $sql="INSERT INTO `a4` VALUES(DEFAULT ,'a','aaa'),(DEFAULT ,'b','bbb'),(DEFAULT ,'c','ccc'),(DEFAULT ,'d','ddd');";
// $sql="SELECT *FROM `a4`;";
//$sql="select * from `a4`";
//$res=$pdo->query($sql);
// PDO中常用获取结果集的方式有3种:
// 1.fetch可以从结果集中获取下一行数据 :循环获取所有关联数组结果
// $row=$res->fetch();
// print_r($row);
//2.fetchColumn()用于获取结果集中单独一列
// while($row = $res->fetchColumn()){
// echo $row;
// }
//3.fetchAll()获取所有结果
// $row = $res->fetchAll(PDO::FETCH_ASSOC); //以关联数组返回所有结果
// print_r($row);
//*****************************************************************************************
//execute()执行一条预处理语句
//1.问好占位符
$sql="INSERT INTO `a4` VALUES(DEFAULT ,?,?);";
//2.准备预处理
$stmt=$pdo->prepare($sql);
//3.绑定参数
$stmt->execute(['z','zzz']);
//4.判断参数是否大于0
if($stmt->rowCount()>0){
echo 'OK';
}else{
echo 'NO';
}
}catch (PDOException $e){ //PDOException: 代表一个由 PDO 产生的错误;
//获取异常消息内容
echo $e->getMessage();
}
?>
<?php
//try{
// $pdo = new PDO('mysql:host=localhost;dbname=aaa;charset=utf8', 'root', 'root');
// echo 'PDO 连接数据库成功';
//}catch(PDOException $e){
// //连接失败,输出异常信息
// echo 'PDO连接数据库失败:'.$e->getMessage();
//}
//
//?>