PDO是PHP Data Object 缩写
PDO链接数据库
try{
KaTeX parse error: Expected 'EOF', got '#' at position 76: …);
object(PDO)#̲1 (0) {} 链接成…pdo);
$sql='select * from '表名';
var_dump($pdo->query($sql)); 输出结果是 object(PDOStatement)#2(1){......}
$sql="INSERT INTO `表名`('字段`,`字段`)values('值一','值二')";
var_dump($pdo->exec($sql)); 输出结果 int()
需要注意的是,exec()方法不会对SELECT语句
PDOException $e 错误号
}catch(PDOException $e){
$e->getMessage();错误信息
echo $e->getMessage();
}
处理结果集fetch()
PDO::FETCH_ASSOC 返回一个键为结果集字段名的关联数组
PDO::FETCH_BOTH(默认) 返回一个索引为结果集列名和以0开始的列号的数组
PDO::FETCH_LAZY 返回一个包含关联数组、数字索引数组和对象的结果
PDO::FETCH_NUM 返回一个索引以0开始的结果集列号的数组
PDO::FETCH_CLASS 返回一个请求类的新实例,映射结果集中的列名到类中对应的属性名
PDO::FETCH_OBJ 返回一个属性名对应结果集列名的匿名对象
使用放法如下
$sql="select `字段`,`字段`... from `表名`;
$res=$pdo->query($sql);
while($row=$res->fetch(PDO::FETECH_......)){
echo $row['字段'];
}
获取一列结果
$sql="select `字段` from `表名`;
$res=$pdo->query($sql);
while($row=$res->fetchColumn(指定某一列输出 填写的是数字)){
echo $row;
}
获取所有结果
$sql="select * from `表名`;
$res=$pdo->query($sql);
var_dump($res->fetchAll());
预处理机制
①问好占位符方式
$sql="select into `表名` values(default,?,?,?)";
准备预处理语句
$stmt=$pdo->prepare($sql);
$stmt->execute(['值一','值二','值三']);
if($stmt->rowCount()>0){
echo '插入成功';
}else{
echo '插入失败';
}
②参数占位符方式
$sql="select into `表名` values(default,:字段一,:字段二,:字段三)";
$stmt=$pdo->prepare($sql);
$stmt->execte(['字段一'=>'值一','值二'=>'字段二','字段三'=>'值三']);