php 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("insert into shop(name,price)values(?,?)");

// $stmt=$pdo->prepare("insert into shop(name,price)values(:na,:pr)");

 

//绑定参数(变量和参数绑定)

$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 "执行成功";

  echo "最后插入的ID:".$pdo->lastInsertId();

}else{

  echo "执行失败";

}

?>

//以数组方式向服务器传值

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);

 

//用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);

}

*/

 

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);

}

*/

 
//多条获取fetchAll()

// $stmt->setFetchMode(PDO::FETCH_ASSOC);

$data=$stmt->fetchAll(PDO::FETCH_ASSOC); //也可以用上句进行设置

print_r($data);

 
//以表格输出查询结果

 
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);

 

for($i=0;$i<$stmt->columncount();$i++){

  $field=$stmt->getColumnMeta($i);

}

while($stmt->fetch()){

 
}

echo "行:".stmt->rowcount()."";

echo "列:".stmt->columncount()."";

?>

 

 

二、PDO事务提交

 

posted @ 2021-07-09 11:37  招花  阅读(173)  评论(0编辑  收藏  举报