位置:首页 » 文章/教程分享 » PDO简单使用示例

PDO简单使用示例基础操作:

<?php  
$dbh = new PDO('mysql:host=localhost;dbname=access_control' 'root' '');    
$dbh->setAttribute(PDO::ATTR_ERRMODE PDO::ERRMODE_EXCEPTION);    
$dbh->exec('set names utf8');   
/*添加*/  
//$sql = "INSERT INTO `user` SET `login`=:login AND `password`=:password";   
$sql = "INSERT INTO `user` (`login` `password`)VALUES (:login :password)"; 
 $stmt = $dbh->prepare($sql);  $stmt->execute(array(':login'=>'kevin2'':password'=>''));    
echo $dbh->lastinsertid();    
/*修改*/  
$sql = "UPDATE `user` SET `password`=:password WHERE `user_id`=:userId";    
$stmt = $dbh->prepare($sql);    
$stmt->execute(array(':userId'=>'7' ':password'=>'4607e782c4d86fd5364d7e4508bb10d9'));    
echo $stmt->rowCount();   
/*删除*/  
$sql = "DELETE FROM `user` WHERE `login` LIKE 'kevin_'"; //kevin%    
$stmt = $dbh->prepare($sql);    
$stmt->execute();    
echo $stmt->rowCount();    
/*查询*/  
$login = 'kevin%';    
$sql = "SELECT * FROM `user` WHERE `login` LIKE :login";    
$stmt = $dbh->prepare($sql);    
$stmt->execute(array(':login'=>$login));    
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){       
 print_r($row);    
}    
print_r( $stmt->fetchAll(PDO::FETCH_ASSOC));   
?>

  1. 建立数据库连接:
    <?php  
    $dbh=newPDO('mysql:host=localhost;port=3306; dbname=test'$user$passarray(  
    PDO::ATTR_PERSISTENT=>true  
    ));  
    ?>
    

持久性链接则指定:PDO::ATTR_PERSISTENT=>true。

  1. 捕捉错误
    <?php  
    try{  
    $dbh=newPDO('mysql:host=localhost;dbname=test'$user$pass);  
    
    $dbh->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);  
    
    $dbh->exec("SET CHARACTER SET utf8");  
    $dbh=null; //断开连接  
    }catch(PDOException$e){  
    print"Error!:".$e->getMessage()."<br/>";  
    die();  
    }  
    ?>
    
  1. 事务处理
    <?php  
    try{  
    $dbh->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);  
    
    $dbh->beginTransaction();//开启事务  
    $dbh->exec("insertintostaff(idfirstlast)values(23'Joe''Bloggs')");  
    $dbh->exec("insertintosalarychange(idamountchangedate)  
    values(2350000NOW())");  
    $dbh->commit();//提交事务  
    
    }catch(Exception$e){  
    $dbh->rollBack();//错误回滚  
    echo"Failed:".$e->getMessage();  
    }  
    ?>
    
  1. 错误处理

a. 静默模式(默认模式)

$dbh->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_SILENT); //不显示错误

$dbh->setAttribute(PDO::ATTR_ERRMODE PDO::ERRMODE_WARNING);//显示警告错误,并继续执行

$dbh->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);//产生致命错误,PDOException


<?php  
try{      
 $dbh = new PDO($dsn $user $password);      
 $sql = 'Select * from city where CountryCode =:country';      
 $dbh->setAttribute(PDO::ATTR_ERRMODE PDO::ERRMODE_WARNING);      
 $stmt = $dbh->prepare($sql);      
 $stmt->bindParam(':country' $country PDO::PARAM_STR);      
 $stmt->execute();      
 while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {        
  print $row['Name'] . "/t";      
 }    
}   // if there is a problem we can handle it here    
catch (PDOException $e)  {      
 echo 'PDO Exception Caught.  ';      
 echo 'Error with the database: <br />';      
 echo 'SQL Query: ' $sql;     
 echo 'Error: ' . $e->getMessage();    
}   
?>