以下是一些pdo预处理 的一些小知识
PDOStatement类:准备语句,处理结果集 也就是预处理,安全,高效,推荐使用
两种占位符号
: 关联数组,按名称使用,和顺序无关,以冒号开头,自己定义
? 参数 索引数组,按索引顺序使用
$stmt=$pdo->prepare($sql); $sql可是是任意sql语句,这与mysqli不同
如:
try{
$pdo=new PDO("mysql:host=localhost;dbname=mysqldb","root","snail");
}catch(PDOException $e){
echo $e->getMessage();
}
$stmt=$pdo->prepare("select * from shop where id >:id");
$stmt->execute(array(':id'=>130));
$row=$stmt->fetch();
print_r($row);
echo '<br>';
?>
还有
<?php
//用fetch(),fetchAll()来获取查询结果
try{ $pdo=new PDO("mysql:host=localhost;dbname=mysqldb","root","snail");
}catch(PDOException $e)
{
echo $e->getMessage();
}
$stmt=$pdo->prepare("select * from shop where id >:id");
$stmt->execute(array(':id'=>130));/* 单条获取fetch()
$stmt->setFetchMode(PDO::FETCH_ASSOC); //设置获取模式
while($row=$stmt->fetch()){
print_r($row);
echo '<br>'; }
*/ //多条获取fetchAll()//
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$data=$stmt->fetchAll(PDO::FETCH_ASSOC); //也可以用上句进行设置
echo '<pre>';
print_r($data);
echo '</pre>';
?>
<?php
//以表格输出查询结果
try{
$pdo=new PDO("mysql:host=localhost;dbname=mysqldb","root","snail");
}catch(PDOException $e)
{
echo $e->getMessage();
}
$stmt=$pdo->prepare("select id,name,price from shop where id >:id");
$stmt->execute(array(':id'=>130));
$stmt->bindColumn(id,$id);
$stmt->bindColumn(name,$name);
$stmt->bindColumn(price,$price);
echo '<table border=1 align="center" width=800px>';
echo '<tr>';
for($i=0;$i<$stmt->columncount();$i++){
$field=$stmt->getColumnMeta($i);
echo '<th>'.$field["name"].'</th>';
}
echo "</tr>";