PDO預(yù)處理
PDOStatement類:準(zhǔn)備語句奇昙,處理結(jié)果集
也就是預(yù)處理,安全,高效,推薦使用
兩種占位符號(hào):?參數(shù) 索引數(shù)組,按索引順序使用
名子參數(shù) 關(guān)聯(lián)數(shù)組,按名稱使用,和順序無關(guān),以冒號(hào)開頭,自己定義
$stmt=$pdo->prepare($sql); $sql可是是任意sql語句,這與mysqli不同
兩種點(diǎn)位符號(hào)
<?php
try{
$pdo=new PDO("mysql:host=localhost;dbname=mysqldb","root","snail");
}catch(PDOException $e){
echo $e->getMessage();
}
//準(zhǔn)備一條語句,并放到服務(wù)器端,而且編譯
$stmt=$pdo->prepare("insert into shop(name,price)values(?,?)");
// $stmt=$pdo->prepare("insert into shop(name,price)values(:na,:pr)");
//綁定參數(shù)(變量和參數(shù)綁定)
$stmt->bindparam(1,$name);
$stmt->bindparam(2,$price);
// $stmt->bindparam(":na",$name);
// $stmt->bindparam(":pr",$price);
$name="liwu11";
$price=234.4311;
if($stmt->execute()){
echo "執(zhí)行成功";
echo "最后插入的ID:".$pdo->lastInsertId();
}else{
echo "執(zhí)行失敗";
}
?>
<?php
//以數(shù)組方式向服務(wù)器傳值
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 '
';
?>
<?php
//用fetch(),fetchAll()來獲取查詢結(jié)果
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); //設(shè)置獲取模式
while($row=$stmt->fetch()){
print_r($row);
echo '
';
}
*/
//多條獲取fetchAll()
// $stmt->setFetchMode(PDO::FETCH_ASSOC);
$data=$stmt->fetchAll(PDO::FETCH_ASSOC); //也可以用上句進(jìn)行設(shè)置
echo '<pre>';
print_r($data);
echo '</pre>';
?>
<?php
//以表格輸出查詢結(jié)果
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>";
while($stmt->fetch()){
echo '<tr>';
echo '<td>'.$id.'</td>';
echo '<td>'.$name.'</td>';
echo '<td>'.$price.'</td>';
echo '</tr>';
}
echo '</table>';
echo "行:".$stmt->rowcount()."
";
echo "列:".$stmt->columncount()."
";
?>