PDO 支持面向对象的方式处理各种数据库(如:mysql、oracle、db2等),也就是说,PDO 支持跨数据库类型。
PDO 中也支持预处理和参数绑定。
连接MySQL:
<?php
$dsn='mysql:host=localhost;dbname=mssc';
$user='root';
$password='';
$status=1;
try {
$sql='select * from onethink_order where status=:status';
$dbh=new PDO($dsn,$user,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$stmt=$dbh->prepare($sql);
$stmt->bindParam(':status',$status);
$stmt->execute();
//返回插入、更新、删除的受影响行数
// echo $stmt->rowCount();
//返回最后插入的id
// echo 'ID of last insert:'.$dbh->lastInsertId();
while ($row=$stmt->fetch(PDO::FETCH_ASSOC)) {
echo $row['id']."\t".$row['status'].'</br>';
}
} catch (PDOException $e) {
echo 'SQL Query:'.$sql.'</br>';
echo 'Connection failed:'.$e->getMessage();
}
?>
连接SQLServer:
<?php
try {
$dbName = "sqlsrv:Server=127.0.0.1,1433;Database=dbPHP";
$dbUser = "sa";
$dbPassword = "fuke";
$db = new PDO($dbName, $dbUser, $dbPassword);
if ($db)
{
echo "database connect succeed.<br />";
}
}
catch (PDOException $e)
{
$content = iconv("UTF-8","gbk",$e->getMessage());
echo $content . "<br />";}echo "Hello World!";
}
?>
常用的方法:
exec() 方法
exec() 用来执行写操作的SQL语句,如insert,delete,update等。执行成功返回受影响的行数,失败返回false。
$stmt = $pdo->prepare('insert user(name,balance) value(?,?)');
$name = "老王";
$balance = 1888;
// 参数绑定
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $balance);
$res = $stmt->execute();
名称占位符(:名称)
参数和名称占位符的匹配按照名称进行匹配,和顺序无关。
$stmt = $pdo->prepare('insert user(name,balance) value(:a,:b)');
$name = "老王";
$balance = 2888;
// 参数绑定
$stmt->bindParam(":a", $name);
$stmt->bindParam(":b", $balance);
$res = $stmt->execute();