1、pdo(php data object)擴充套件為php定義了乙個訪問資料庫的輕量、持久的介面。實現pdo接www.cppcns.com口的每一種資料庫驅動都能以正則擴充套件的形式把各自的特色表現出來。
主要:pdo擴充套件只是乙個抽象的介面層,利用pdo擴充套件本身並不能實現任何資料庫操作,必須使用乙個特定的資料庫pdo驅動訪問資料庫
2、啟動pdo方法:找到php.ini檔案將
複製** **如下:
;extension=php_pdo.dll
前的分號去掉即可(linux環境下類似)
3、pdo預定義類:
pdo包含了三個預定義類:pdo、pdostatement、pdoexception
(1)pdo類:代表乙個php和資料庫之間的連線
pdo:構造器,建立乙個新的pdo物件
begintransaction:開始事務
commit:提交事務
errorcode:從資料庫返回乙個錯誤代號,如果有的話
errorinfo:從資料庫返回乙個含有錯誤資訊的陣列,如果有的話
exec:執行一條sql語句並返回影響的行數
getattribute:返回乙個資料庫的連線屬性
lastinsertid:返回最新插入到資料庫的行(id)
prepare:為執行準備一條sql語句,返回語句執行後的聯合結果集
query:執行一條sql語句並返回結果集
rollback:回滾乙個事務
setattribute:設定乙個資料庫連線屬性
(2)pdostatement類:代表一條預處理語句以及語句執行後的聯合結果集
bindcolomn:繫結乙個php變數到結果集輸出列
bindparam:繫結乙個變數到php預處理語句中的引數
bindvalue:繫結乙個值到處理語句中的引數
closecursor:關閉游標,使語句可以再次執行
cloumncount:返回結果集中列的數量
errorcode:從語句中返回乙個錯誤代號,如果有的話
errorinfo:從語句中返回包含錯誤資訊的陣列
execute:執行一條預處理語句
fetch:從結果集中取出一行
fetchall:從結果集中取出乙個包含所有行的陣列
fe返回結果集中某一列的資料
getattribute:返回乙個pdostatement屬性
getcolomnmeta:返回結果集中某一列的結構
nextrowset:返回下乙個結果集
rowcount:返回sql語句執行後影響的行數
setattribute:設定乙個pdostatement屬性
setfetchmode:為pdo程式設計客棧statement設定獲取資料
給乙個事務處理的簡單例子:
複製** **如下:
<?php
/*事務處理
mysql 表引擎 myisam innodb
新增字段 alter table user add money int not null default 0;
檢視表引擎 show create table user
修改表引擎 alter table user engine=innodb
&程式設計客棧nbsp;*/
trycatch(pdoexception $e)
//設定字符集
$sql="set name utf8";
$pdo->exec($sql);
//開啟事務處理
$pdo->begintransaction();
$num=250;
$sql="update user set money=money- where id =1";
$rows=$pdo->exec($sql);
$sql="update user set monet=money- where id=2";
$rows+=$pdo->exec($sql);
//結束事務處理
if($rows==2)else
?>
(事務的主要特性:原子性、一致性、獨立性和永續性)
4、pdo最大的特點是引入了引數繫結和預編譯
預編譯負責兩件事,轉移和軟解析提速。程式要支援預編譯,除了資料庫支援外,還需要驅動支援(pdo和nysqli支援)
5、pdo的效率問題
(1)在乙個大表大資料量中進行測試,pdo的crud效率比mysql直連低5%~15%,並且方差大於mysql直連
(2)至於負載方面,pdo開啟長連線後負載高於mysql且比較穩定。
其實在實際應用中,90%的程式是不會進行資料庫遷移的,有資料庫遷移的應用程式少之又少。
本文標題: 對php pdo的一些認識小結
本文位址:
對cookie的一些認識
cookie是一小段文字資訊,將資料儲存在客戶端,設計初衷是為了彌補http協議無狀態的不足。客戶端請求伺服器時,如果伺服器需要記錄該使用者的狀態,就使用response向客戶端頒發乙個cookie,客戶端會把cookie儲存起來。當瀏覽器再次訪問該 時,瀏覽器會把請求的 連同該cookie一起提交...
關於 對拍 的一些認識
對拍是怎麼回事呢?對拍相信大家都很熟悉,但是對拍是怎麼回事呢,下面就讓小編帶大家一起了解吧。對拍是用來檢驗自己寫的正解的正確性 效率的東西。操作說明 1.準備好自己寫的暴力 b.cpp 和 b.exe 和正解 z.cpp 和 z.exe 2.寫乙個造資料的程式 shuju.cpp 和 shuju.e...
對敏捷方法的一些簡單認識
前言 這兩天做的事情,不能說沒有用,至少了解了很多資料庫的東西,不過大部分做的都是無用功這點是毋庸置疑的,也許這是調研和設計過程不可避免的事情,也罷。正文 目前實習所在的專案處於測試階段,負責測試的同學連著忙了個把月,天天加班,不斷測出問題,搞的組內氛圍.咳咳.再想到這幾天做的無用功來回折騰等等,就...