国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) php教程 PHP開(kāi)發(fā) PHP PDO函數(shù)函式庫(kù)詳解

PHP PDO函數(shù)函式庫(kù)詳解

Jan 06, 2017 pm 02:31 PM

目前而言,實(shí)現(xiàn)「資料庫(kù)抽象層」任重道遠(yuǎn),使用PDO這樣的「資料庫(kù)存取抽象層」是個(gè)不錯(cuò)的選擇。

PDO中包含三個(gè)預(yù)先定義的類別

PDO中包含三個(gè)預(yù)先定義的類,它們分別是 PDO、PDOStatement 和 PDOException。

一、PDO

PDO->beginTransaction()?— 標(biāo)示回溯起始點(diǎn)
PDO->commit() — 標(biāo)示回滾結(jié)束點(diǎn),並執(zhí)行SQL
PDO->__construct() — 建立一個(gè)PDO連結(jié)資料庫(kù)的實(shí)例
PDO->errorCode() — 取得錯(cuò)誤碼
PDO->errorInfo() — 取得錯(cuò)誤的資訊
PDO->exec() — 處理一則SQL語(yǔ)句,並傳回所影響的條目數(shù)
PDO->getAttribute( ) — 取得一個(gè)「資料庫(kù)連線物件」的屬性
PDO->getAvailableDrivers() — 取得有效的PDO磁碟機(jī)名稱
PDO->lastInsertId() — 取得寫(xiě)入的最後一條資料的主鍵值
PDO->prepare( ) — 產(chǎn)生一個(gè)「查詢物件」
PDO->query() — 處理一條SQL語(yǔ)句,並傳回一個(gè)「PDOStatement」
PDO->quote() — 為某個(gè)SQL中的字串加上引號(hào)
PDO->rollBack () — 執(zhí)行回滾
PDO->setAttribute() — 為一個(gè)「資料庫(kù)連接物件」設(shè)定屬性

二、PDOStatement

PDOStatement->bindColumn() — Bind a column to a PHP variable
P) =d 即使() — Binds a parameter to the specified variable name
PDOStatement->bindValue() — Binds a value to a parameter
PDOStatement->closeCursor() — Closes the cursor, enabling the statement to be executedgain. () — Returns the number of columns in the result set
PDOStatement->errorCode() — Fetch the SQLSTATE associated with the last operation on the statement handle
PDOStatement->error Info) — Fetch extend on informated information the the statement handle
PDOStatement->execute() — Executes a prepared statement
PDOStatement->fetch() — Fetches the next row from a result set
PDOStatement->fetchAll() — Returns. PDOStatement->fetchColumn() — Returns a single column from the next row of a result set
PDOStatement->fetchObject() — Fetches the next row and returns it as an object.
PDOStatement-> Returns it as an object.
PDOStatement-> Reeveb??ute) —Attribute(statePDObment-> statePDOState)
PDOStatement->getColumnMeta() — Returns metadata for a column in a result set
PDOStatement->nextRowset() — Advances to the next rowset in a multi-rowset statement handle
PDOStatement. affected by the last SQL statement
PDOStatement->setAttribute() — Set a statement attribute
PDOStatement->setFetchMode() — Set the default fetch mode for this statement

PDO是一個(gè)「資料庫(kù)存取」種資料庫(kù)的存取接口,與mysql和mysqli的函數(shù)庫(kù)相比,PDO讓跨資料庫(kù)的使用更有親和力;與ADODB和MDB2相比,PDO更有效率。目前而言,實(shí)作「資料庫(kù)抽象層」任重道遠(yuǎn),使用PDO這樣的「資料庫(kù)存取抽象層」是不錯(cuò)的選擇。

PDO中包含三個(gè)預(yù)先定義的類別

PDO中包含三個(gè)預(yù)先定義的類,它們分別是 PDO、PDOStatement 和 PDOException。

一、PDO

PDO->beginTransaction()?— 標(biāo)示回溯起始點(diǎn)

PDO->commit() — 標(biāo)示回溯結(jié)束點(diǎn),並執(zhí)行回復(fù)>__construct() — 建立一個(gè)PDO連結(jié)資料庫(kù)的實(shí)例
PDO->errorCode() — 取得錯(cuò)誤碼
PDO->errorInfo() — 取得錯(cuò)誤的資訊
PDO->exec() — 處理一則SQL語(yǔ)句,並傳回一則SQL語(yǔ)句,並傳回一條SQL語(yǔ)句,並傳回一條SQL語(yǔ)句,並傳回一條SQL語(yǔ)句,並傳回一條SQL語(yǔ)句,並傳回一條SQL語(yǔ)句,並傳回一條SQL語(yǔ)句,並傳回一條SQL所影響的條目數(shù)
PDO->getAttribute() — 取得一個(gè)「資料庫(kù)連線物件」的屬性
PDO->getAvailableDrivers() — 取得有效的PDO磁碟機(jī)名稱
PDO->lastInsertId() — 取得寫(xiě)入的最後一條資料的主鍵值
PDO->prepare() — 產(chǎn)生一個(gè)「查詢物件」
PDO->query() — 處理一條SQL語(yǔ)句,並傳回一個(gè)「PDOStatement」
PDO->quote() — 為某個(gè)SQL中的字串新增引號(hào)
PDO->setAttribute() — 為一個(gè)「資料庫(kù)連線物件」設(shè)定屬性

詳解1) PDO中的資料庫(kù)連線
$dsn = 'mysql:dbname=ent;host=127.0.0.1 ′;

$user = 'root';

$password = '123456′;
try {
$dbh = new PDO($dsn, $user, $password, array(PDO::ATTR_PERSISTENT => true));
$dbh->query('set names utf8;');
foreach ($dbh->query('SELECT * from tpm_juese') as $row) {
print_r($row);
}
} catch (PDOException $ e) {
echo 'Connection failed: ' . $e->getMessage();
}

許多Web應(yīng)用會(huì)因?yàn)槭褂昧讼蛸Y料庫(kù)的持久連接而得到最佳化。持久連接不會(huì)在腳本結(jié)束時(shí)關(guān)閉,
相反它會(huì)被緩存起來(lái)並在另一個(gè)腳本通過(guò)相同的標(biāo)識(shí)請(qǐng)求一個(gè)連接時(shí)得以重新利用。
持久連線的快取可以讓你避免在腳本每次需要與資料庫(kù)對(duì)話時(shí)都要部署一個(gè)新的連線的資源消耗,讓你的網(wǎng)路應(yīng)用程式更加快速。
上面實(shí)例中的array(PDO::ATTR_PERSISTENT => true)就是把連線類型設(shè)為持久連線。

詳解2) PDO中的事務(wù)
PDO->beginTransaction(),PDO->commit(),PDO->rollBack()這三個(gè)方法是在支援回溯功能時(shí)一起使用的。 PDO->beginTransaction()方法標(biāo)示起始點(diǎn),PDO->commit()方法標(biāo)示回溯結(jié)束點(diǎn),並執(zhí)行SQL,PDO->rollBack()執(zhí)行回溯。
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', 'root', ”);
$dbh->query('set names utf8;');
$ dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$dbh->beginTransaction();
$dbh->exec(”INSERT INTO `test`.`table` (`name` `table,`(`name` `age `)VALUES ('mick', 22);”);
$dbh->exec(”INSERT INTO `test`.`table` (`name` ,`age`)VALUES ('lily', 29);” );
$dbh->exec(”INSERT INTO `test`.`table` (`name` ,`age`)VALUES ('susan', 21);”);
$dbh->commit();

} catch (Exception $e) {
$dbh->rollBack();
echo “Failed: ” . $e->getMessage();
}
?>
現(xiàn)在你已經(jīng)透過(guò)PDO建立了連接,在部署

}

?>

現(xiàn)在你已經(jīng)透過(guò)PDO建立了連接,在部署

}

?>

現(xiàn)在你已經(jīng)透過(guò)PDO建立了連接,在部署

}

?>

現(xiàn)在你已經(jīng)透過(guò)PDO建立了連接,在部署查詢之前你必須搞清楚PDO是怎麼管理事務(wù)的。性(Atomicity, Consistency, Isolation and Durability,ACID)通俗一點(diǎn)講,一個(gè)事務(wù)中所有的工作在提交時(shí),即使它是分階段執(zhí)行的,也要保證安全地應(yīng)用於資料庫(kù),不被其他的連接幹?jǐn)_。事務(wù)工作也可以在請(qǐng)求發(fā)生錯(cuò)誤時(shí)輕鬆地自動(dòng)取消。事務(wù)可以使你的腳本更快速同時(shí)可能更健壯(要實(shí)現(xiàn)這個(gè)優(yōu)點(diǎn)你仍然需要正確的使用它們)。在被認(rèn)為是「自動(dòng)提交」的模式下。一個(gè)事務(wù),你必須使用PDO->beginTransaction()?方法來(lái)建立一個(gè)。如果底層驅(qū)動(dòng)不支援事務(wù)處理,一個(gè)PDOException就會(huì)被拋出(與你的例外處理設(shè)定無(wú)關(guān),因?yàn)檫@總是一個(gè)嚴(yán)重的錯(cuò)誤狀態(tài))。在一個(gè)事物中,你可以使用 PDO->commit() 或 PDO->rollBack() 結(jié)束它,這取決於事務(wù)中程式碼運(yùn)行是否成功。 ????當(dāng)腳本結(jié)束時(shí)或一個(gè)連接要關(guān)閉時(shí),如果你還有一個(gè)未處理完的事務(wù),PDO將會(huì)自動(dòng)將其回滾。這是對(duì)於腳本意外終止的情況來(lái)說(shuō)是一個(gè)安全的方案——如果你沒(méi)有明確地提交事務(wù),它將會(huì)假設(shè)發(fā)生了一些錯(cuò)誤,為了你資料的安全,所以就執(zhí)行回滾了。 ????二、PDOStatement??

PDOStatement->bindColumn() — 將欄位綁定到PHP 變數(shù)
PDOStatement->bindParam() — 將參數(shù)綁定到指定的變數(shù)名稱
PDOStatement->bindValue() — 將值綁定到參數(shù)
PDOStatement -> closeCursor() — 關(guān)閉遊標(biāo),使語(yǔ)句能夠再次執(zhí)行。
PDOStatement->columnCount() — 傳回結(jié)果集中的列數(shù)
PDOStatement->errorCode() — 取得關(guān)聯(lián)的SQLSTATE與語(yǔ)句柄上的最後一個(gè)運(yùn)算
PDOStatement->errorInfo() — 取得與語(yǔ)句柄上的最後一個(gè)句柄上的最後一個(gè)句柄上的最後一個(gè)句柄上的最後一個(gè)句柄操作相關(guān)的擴(kuò)充錯(cuò)誤訊息
PDOStatement->execute() — 執(zhí)行準(zhǔn)備好的語(yǔ)句
PDOStatement->fetch( ) — 從結(jié)果集中取得下一行
PDOStatement->fetchAll() — 傳回包含結(jié)果集所有行的陣列PDOStatement->fetchColumn() — 從結(jié)果集中的下一行傳回單一欄位
PDOStatement->fetchObject() — 取得下一行並將其作為物件傳回。
PDOStatement->getAttribute() — 擷取語(yǔ)句屬性
PDOStatement->getColumnMeta() — 傳回結(jié)果中列的元資料set
PDOStatement->nextRowset() — 前進(jìn)到多行集語(yǔ)句集柄中的一個(gè)下行下的一個(gè)行下碼PDOStatement ->rowCount() — 傳回受最後一個(gè)SQL 語(yǔ)句影響的行數(shù)
PDOStatement->setAttribute() — 設(shè)定語(yǔ)句屬性
PDOStatement->setFetchMode() — 設(shè)定此語(yǔ)句的預(yù)設(shè)取得模式

三、PDOException提供了三種不同的錯(cuò)誤處理策略。

1. PDO::ERRMODE_SILENT

這是預(yù)設(shè)使用的模式。 PDO會(huì)在語(yǔ)句和資料庫(kù)物件上設(shè)定簡(jiǎn)單的錯(cuò)誤代號(hào),你可以使用PDO->errorCode() 和PDO->errorInfo() 方法來(lái)檢查錯(cuò)誤;如果錯(cuò)誤是在對(duì)statement物件進(jìn)行呼叫時(shí)導(dǎo)致的,你就可以在那個(gè)物件上使用PDOStatement->errorCode() 或PDOStatement->errorInfo() 方法來(lái)取得錯(cuò)誤訊息。而如果錯(cuò)誤是在對(duì)database物件呼叫時(shí)導(dǎo)致的,你就應(yīng)該在這個(gè)資料庫(kù)物件上呼叫那兩個(gè)方法。

2. PDO::ERRMODE_WARNING

作為設(shè)定錯(cuò)誤代號(hào)的附加,PDO將發(fā)布一個(gè)傳統(tǒng)的E_WARNING資訊。這種設(shè)定在調(diào)試和調(diào)試時(shí)是很有用的,如果你只是想看看發(fā)生什麼問(wèn)題而不想中斷程式的流程的話。
3. PDO::ERRMODE_EXCEPTION
作為設(shè)定錯(cuò)誤代號(hào)的附件,PDO會(huì)拋出一個(gè)PDOException異常並設(shè)定它的屬性來(lái)反映錯(cuò)誤代號(hào)和錯(cuò)誤訊息。這中設(shè)定在調(diào)試時(shí)也是很有用的,因?yàn)樗麜?huì)有效的“放大” (炸毀)”腳本中的錯(cuò)誤點(diǎn),非??焖俚闹赶蛞粋€(gè)你代碼中可能出錯(cuò)的區(qū)域。(記?。喝绻惓?dǎo)致腳本事務(wù),處理會(huì)自動(dòng)回滾。 ,也能夠更明確地檢查每個(gè)資料庫(kù)存取的回傳值。的代號(hào)對(duì)應(yīng)到適當(dāng)?shù)腟QLSTATE代號(hào)上。它傳回可以包含一個(gè)包含了SQLSTATE 代號(hào),特定的資料庫(kù)驅(qū)動(dòng)的錯(cuò)誤代號(hào)和特定資料庫(kù)驅(qū)動(dòng)的錯(cuò)誤說(shuō)明字串。 :ATTR_ERRMODE,?PDO::ERRMODE_WARNING);
?> ;

屬性清單:

PDO::PARAM_BOOL
表示一個(gè)布林型別
PDO::PARAM_NULL
表示一個(gè)SQL中的NULL型別
PDO::PARAM_INT
表示一個(gè)SQL中的INTEGER型別
VARCHAR類型
PDO::PARAM_LOB
表示一個(gè)SQL中的large?object類型
PDO::PARAM_STMT
表示一個(gè)SQL中的recordset類型,還沒(méi)有被支援
PDO::PARAM_INPUT_OUTPUTtheparaanterh; stored?procedure.?Youmust?bitwise-OR?this?value?with?an?explicit?PDO::PARAM_*?data?type.
PDO::FETCH_LAZY::將每一行結(jié)果作為一個(gè)標(biāo)鍵傳回
PDO::FETCH_LAZY::將每一行結(jié)果作為一個(gè)標(biāo)物傳回
PDO::FETCH_LAZY::結(jié)果集,名稱相同的資料只傳回一個(gè)
PDO::FETCH_NAMED
僅傳回以鍵值為下標(biāo)的查詢的結(jié)果集,名稱相同的資料以陣列形式傳回
PDO::FETCH_NUM
僅傳回以數(shù)字為下標(biāo)的查詢的結(jié)果集
PDO::FETCH_BOTH
同時(shí)傳回以鍵值和數(shù)字作為下標(biāo)的查詢的結(jié)果集
PDO::FETCH_OBJ
以物件的形式傳回結(jié)果集
PDO::FETCH_BOUND
將PDOStatement::bindParam(和PDOStatement::bindColumn()所綁定的值作為變數(shù)名稱賦值後傳回
PDO::FETCH_COLUMN
表示僅傳回結(jié)果集中的某一列
PDO::FETCH_CLASS
表示以類別的形式傳回結(jié)果集
PDO:: FETCH_INTO
表示將資料合併入一個(gè)存在的類別中進(jìn)行回傳
PDO::FETCH_FUNC
PDO::FETCH_GROUP
PDO::FETCH_UNIQUE
PDO::FETCH_KEY_PAIR
以首個(gè)鍵值表,後面數(shù)字表下的形式傳回結(jié)果集
PDO::FETCH_CLASSTYPE
PDO::FETCH_SERIALIZE
表示將資料合併入一個(gè)存在的類別中並序列化回傳
PDO::FETCH_PROPS_LATE
Available?since?PHP?5.5.0時(shí)候,PDO會(huì)自動(dòng)嘗試停止接受委託,開(kāi)始執(zhí)行
PDO::ATTR_PREFETCH
設(shè)定應(yīng)用程式提前取得的資料大小,並非所有的資料庫(kù)哦度支援
PDO::ATTR_TIMEOUT
設(shè)定連接資料庫(kù)逾時(shí)的值
PDO:: ATTR_ERRMODE
設(shè)定Error處理的模式
PDO::ATTR_SERVER_VERSION
設(shè)定Error處理的模式
PDO::ATTR_SERVER_VERSION
設(shè)定為Error處理的模式
PDO::ATTR_SERVER_VERSION
只讀屬性,表示PDO連線的伺服器端資料庫(kù)版本
PDO::ATTR_CLIENT_VERSION
只讀特性,只讀屬性,表示PDO連接的伺服器的meta資訊
PDO::ATTR_CONNECTION_STATUS
PDO::ATTR_CASE
透過(guò)PDO::CASE_*中的內(nèi)容對(duì)列的形式進(jìn)行操作
PDO::ATTR_CURSOR_NAME
取得或設(shè)定指標(biāo)的名稱
PDO::ATTR_CURSOR
設(shè)定指標(biāo)的類型,PDO現(xiàn)在支援PDO::CURSOR_FWDONLY和PDO::CURSOR_FWDONLY
PDO::ATTR_DRIVER_NAME
AC.驅(qū)動(dòng)的名稱
PDO::ATTR_DRIVER_NAME
AC為SQL的NULL
PDO::ATTR_PERSISTENT
取得一個(gè)存在的連線
PDO::ATTR_STATEMENT_CLASS
PDO::ATTR_FETCH_CATALOG_NAMES
在傳回的結(jié)果集中,使用自訂目錄名稱來(lái)取代名稱名稱。
PDO::ATTR_FETCH_TABLE_NAMES
在傳回的結(jié)果集中,使用自訂表格名稱來(lái)取代欄位名稱。
PDO::ATTR_STRINGIFY_FETCHES
PDO::ATTR_MAX_COLUMN_LEN
PDO::ATTR_DEFAULT_FETCH_MODE
Available?since?PHP?5.2.0
PDO_RsinEM?
PDO::ERRMODE_SILENT
發(fā)生錯(cuò)誤時(shí)不報(bào)告任何的錯(cuò)誤訊息,是預(yù)設(shè)值
PDO::ERRMODE_WARNING
發(fā)生錯(cuò)誤時(shí)發(fā)出一條php的E_WARNING的訊息
PDO::ERRMODE_EXCEPTION
發(fā)生錯(cuò)誤時(shí)拋出一個(gè)PDOException
PDO::CASE_NATURALAL發(fā)生錯(cuò)誤時(shí)拋出一個(gè)PDOException
PDO::CASE_NATURALALAL發(fā)生錯(cuò)誤時(shí)拋出一個(gè)PDOException
PDO::CASE_NATURALALAL 您
強(qiáng)制列的名字小寫(xiě)
PDO::CASE_UPPER
強(qiáng)制列的名字大寫(xiě)
PDO::NULL_NATURAL
PDO::NULL_EMPTY_STRING
PDO::NULL_TO_STRING
PPDO::FETCH功能時(shí)有效
PDO::FETCH_ORI_PRIOR
取得結(jié)果集中的上一行數(shù)據(jù),僅在有指標(biāo)功能時(shí)有效
PDO::FETCH_ORI_FIRST
取得結(jié)果集中的第一行數(shù)據(jù),僅在有指標(biāo)功能時(shí)才有效
PDO:: FETCH_ORI_LAST
取得結(jié)果集中的最後一行數(shù)據(jù),僅在有指針功能時(shí)有效
PDO::FETCH_ORI_ABS
獲取結(jié)果集中的某一行數(shù)據(jù),僅在有指針功能時(shí)有效
PDO::FETCH_ORI_REL
獲取結(jié)果集中當(dāng)前行後某行的數(shù)據(jù),僅在有指標(biāo)功能時(shí)有效
PDO::CURSOR_FWDONLY
建立一個(gè)只能向後的指標(biāo)操作對(duì)象
PDO::CURSOR_SCROLL
建立一個(gè)指標(biāo)操作對(duì)象,傳遞PDO::FETCH_ORI_*中的內(nèi)容來(lái)控制結(jié)果集
PDO::ERR_NONE?(string)
設(shè)定沒(méi)有錯(cuò)誤時(shí)候的錯(cuò)誤訊息
PDO::PARAM_EVT_ALLOC
Allocation?event
PDO::PARAM_EVT_FREE
Deallocation?event
PDO::PARAM_EVT_FREE
Deallocation?event
PDO::PARAM_EVP::M事件在執(zhí)行準(zhǔn)備好的語(yǔ)句之前觸發(fā)。
PDO::PARAM_EVT_EXEC_POST
事件在執(zhí)行準(zhǔn)備的語(yǔ)句之後觸發(fā)。
PDO::PARAM_EVT_FETCH_PRE
事件在從 a 取得結(jié)果之前觸發(fā)結(jié)果集.
PDO::PARAM_EVT_FETCH_POST
事件從結(jié)果集中取得結(jié)果後觸發(fā)。
PDO::PARAM_EVT_NORMALIZE
綁定參數(shù)註冊(cè)期間觸發(fā)的事件,允許驅(qū)動(dòng)程式標(biāo)準(zhǔn)化參數(shù)名稱。

更多PHP PDO函數(shù)庫(kù)詳解相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話題