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));
?>
-
建立数据库连接:
<?php
$dbh=newPDO('mysql:host=localhost;port=3306; dbname=test'$user$passarray(
PDO::ATTR_PERSISTENT=>true
));
?>
持久性链接则指定:PDO::ATTR_PERSISTENT=>true。
-
捕捉错误
<?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();
}
?>
-
事务处理
<?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();
}
?>
-
错误处理
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();
}
?>