PHP PDO數(shù)據(jù)庫的連接與使用示例代碼如下:
<?php
/*
* PDO 數(shù)據(jù)庫的操作
* */
$dns = "mysql:dbname=bbs;host=localhost";
$user ="root";
$password="";
$opt = array(PDO::ATTR_PERSISTENT=>true);
$pdo = new PDO($dns,$user,$password,$opt);
/*
* getAttribute()查看數(shù)據(jù)庫連接屬性
* */
var_dump("是否關(guān)閉自動提交功能:".$pdo->getAttribute(PDO::ATTR_AUTOCOMMIT));
var_dump("當(dāng)家PDO錯(cuò)誤處理的模式:".$pdo->getAttribute(PDO::ATTR_ERRMODE));
var_dump("表字段字符的大小寫轉(zhuǎn)換:".$pdo->getAttribute(PDO::ATTR_CASE));
var_dump("與連接狀態(tài)相關(guān)的特有信息:".$pdo->getAttribute(PDO::ATTR_CONNECTION_STATUS));
var_dump("空字符串轉(zhuǎn)換為SQL的NULL:".$pdo->getAttribute(PDO::ATTR_ORACLE_NULLS));
var_dump("應(yīng)用程序提前獲取數(shù)據(jù)大小:".$pdo->getAttribute(PDO::ATTR_PERSISTENT));
var_dump("與數(shù)據(jù)庫特有的服務(wù)器信息:".$pdo->getAttribute(PDO::ATTR_SERVER_INFO));
var_dump("數(shù)據(jù)庫服務(wù)器版本號信息:".$pdo->getAttribute(PDO::ATTR_SERVER_VERSION));
var_dump("數(shù)據(jù)庫客戶端版本號信息:".$pdo->getAttribute(PDO::ATTR_CLIENT_VERSION));
/*
* 兩種執(zhí)行方法
* exec 返回受影響的行數(shù),用于 insert delete update
* query 用于查詢,返回一個(gè)PDOstatement,可用于對每條信息的操作
* */
/*
*
$sql = "delete from news where id=16";
echo $pdo ->exec($sql);
--------------------------------------------------
quote 為SQL語句加轉(zhuǎn)義
$sql=$pdo->quote("delete from news where id ='1'");
echo $sql; // 輸出:'delete from news where id =\'1\''
--------------------------------------------------
lastInsertId
$sql = "insert into news values('','boy','boy')";
$pdo -> exec($sql);
echo "插入的記錄的ID:".$pdo->lastInsertId();//得到最后一次插入記錄的ID
--------------------------------------------------
其中里面一個(gè)最重要的方法就是 prepare($sql),返回一個(gè)PDOstatement,同樣,還有一個(gè)返回PDOstatement 的方法是 query()用于查詢數(shù)據(jù)
prepare($sql) 是對SQL 語句進(jìn)行預(yù)處理,返回一個(gè)一個(gè) PDOstatement對象,里面包含了很多有用的方法
下一節(jié)再記錄PDOstatement屬性與依法
--------------------------------------------------
下面是用于事務(wù)的操作
*
* */
$sql1 = "delete from news where id =21";
$sql2 = "delete from news where id =22";
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
try{
$pdo->beginTransaction();
$pdo->exec($sql1);
$pdo->exec($sql2);
}catch(Exception $ex)
{
$pdo->rollBack();
echo "數(shù)據(jù)庫操作失敗".$ex->getMessage();
}
?>
<?php
/*
* PDO 數(shù)據(jù)庫的操作
* */
$dns = "mysql:dbname=bbs;host=localhost";
$user ="root";
$password="";
$opt = array(PDO::ATTR_PERSISTENT=>true);
$pdo = new PDO($dns,$user,$password,$opt);
/*
* getAttribute()查看數(shù)據(jù)庫連接屬性
* */
var_dump("是否關(guān)閉自動提交功能:".$pdo->getAttribute(PDO::ATTR_AUTOCOMMIT));
var_dump("當(dāng)家PDO錯(cuò)誤處理的模式:".$pdo->getAttribute(PDO::ATTR_ERRMODE));
var_dump("表字段字符的大小寫轉(zhuǎn)換:".$pdo->getAttribute(PDO::ATTR_CASE));
var_dump("與連接狀態(tài)相關(guān)的特有信息:".$pdo->getAttribute(PDO::ATTR_CONNECTION_STATUS));
var_dump("空字符串轉(zhuǎn)換為SQL的NULL:".$pdo->getAttribute(PDO::ATTR_ORACLE_NULLS));
var_dump("應(yīng)用程序提前獲取數(shù)據(jù)大小:".$pdo->getAttribute(PDO::ATTR_PERSISTENT));
var_dump("與數(shù)據(jù)庫特有的服務(wù)器信息:".$pdo->getAttribute(PDO::ATTR_SERVER_INFO));
var_dump("數(shù)據(jù)庫服務(wù)器版本號信息:".$pdo->getAttribute(PDO::ATTR_SERVER_VERSION));
var_dump("數(shù)據(jù)庫客戶端版本號信息:".$pdo->getAttribute(PDO::ATTR_CLIENT_VERSION));
/*
* 兩種執(zhí)行方法
* exec 返回受影響的行數(shù),用于 insert delete update
* query 用于查詢,返回一個(gè)PDOstatement,可用于對每條信息的操作
* */
/*
*
$sql = "delete from news where id=16";
echo $pdo ->exec($sql);
--------------------------------------------------
quote 為SQL語句加轉(zhuǎn)義
$sql=$pdo->quote("delete from news where id ='1'");
echo $sql; // 輸出:'delete from news where id =\'1\''
--------------------------------------------------
lastInsertId
$sql = "insert into news values('','boy','boy')";
$pdo -> exec($sql);
echo "插入的記錄的ID:".$pdo->lastInsertId();//得到最后一次插入記錄的ID
--------------------------------------------------
其中里面一個(gè)最重要的方法就是 prepare($sql),返回一個(gè)PDOstatement,同樣,還有一個(gè)返回PDOstatement 的方法是 query()用于查詢數(shù)據(jù)
prepare($sql) 是對SQL 語句進(jìn)行預(yù)處理,返回一個(gè)一個(gè) PDOstatement對象,里面包含了很多有用的方法
下一節(jié)再記錄PDOstatement屬性與依法
--------------------------------------------------
下面是用于事務(wù)的操作
*
* */
$sql1 = "delete from news where id =21";
$sql2 = "delete from news where id =22";
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
try{
$pdo->beginTransaction();
$pdo->exec($sql1);
$pdo->exec($sql2);
}catch(Exception $ex)
{
$pdo->rollBack();
echo "數(shù)據(jù)庫操作失敗".$ex->getMessage();
}
?>