資料庫介面層PDO(PHP)

2021-09-24 05:20:40 字數 1956 閱讀 6020

一、建立pdo物件連線資料庫

$con = new pdo(string dsn,string username,string password,[array driver_options]);

說明:dsn:資料來源名,必選引數。用來指定乙個要連線的資料庫和連線使用的驅動程式。

username:使用者名稱,可選引數。

password:密碼,可選引數。

driver_options:用來指定連線所需的所有額外選項,傳遞附加的調優引數到pdo底層驅動程式。

若需要資料庫長連線,需要設定這個引數為:arrat(pdo::attr_persistent=>true);

pdo類中常用的成員方法

query();       //執行一條有結果集返回的sql語句,並返回乙個結果集pdostatement物件

exec();        //執行一條sql語句,並返回所有影響的記錄數

lastinsertid();//獲取最近一條插入到表中的自增id值

prepare();     //負責準備要執行的sql語句,用於執行儲存過程等

pdostatement類中常用的成員方法

fetch();         //以陣列或物件的形式返回當前指標指向的記錄,並將結果集指標移至下一行,當到達結果集末尾時返回false

fetchall();      //返回結果集中所有的行,並賦給返回的二維陣列,指標指向結果集末尾

fetchcolumn();   //返回結果集中下一行某個列的值

setfetchmode();  //設定fetch()或fetchall()方法返回結果的模式,如關聯陣列,索引陣列,混合陣列,物件等

rowcount();      //返回結果集中的記錄總數,僅對query()和prepare()方法有效

columncount();   //在結果集中返回列的總數

bindcolumn();    //將乙個列和乙個指定的變數名繫結(必須設定fetch方法為fetch_both)

二、使用query()方法執行查詢

$result = $con->query("select語句");

說明:建立了結果集$result後,可以使用$result->fetch()方法讀取當前記錄到陣列中,該陣列預設為混合陣列。

修改fetch()方法只返回關聯陣列的兩種方法:

①在建立結果集後用$result->setfetchmode(pdo::fetch_assoc)進行設定。

②給fetch()方法新增引數

$row=$result->fetch(pdo::fetch_assoc)或$row=$result->fetch(1) //0為混合陣列,1或2為關聯陣列,3為索引陣列

三、使用prepare()方法執行預處理語句

過程:(1)在sql語句中新增佔位符,pdo支援兩種佔位符,即問號佔位符和命名引數佔位符。

$sql = "insert into user(name,password,city) vaules(?,?,?)"; //?佔位符

$sql = "insert into user(name,password,city) vaules(:name,:pw,:city)"; //命名佔位符

(2)使用prepare()方法準備執行預處理語句,返回乙個pdostatement類物件

$result = $con->prepare($sql);

(3)繫結引數,使用bindparam()方法將引數繫結到準備好的查詢的佔位符上

$result->bindparam(1,$name); //對於問號佔位符,繫結第乙個引數

$result->bindparam(:name,$name) //對於命名引數佔位符繫結:name

(4)使用execute()方法執行查詢

$result->execute();

$result->execute(array('xx','xx','xx')); //執行查詢同時繫結引數

資料介面層 IDAL

一 idal主要功能 1 這完全是 工廠模式 的一部分實現而已 2 這是一組介面類,其中包括了每個要公開的資料訪問方法。為每個資料庫產品單獨編寫的 dal 資料訪問層 都要實現這組介面所定義的方法 3 也就是規定了在 dal中編寫的 對使用者賬號進行操作的類 所必須執行的方法!4 idal 要達到的...

BSD介面層關鍵資料結構

struct ifnet 每個協議定義乙個專用的s o c k a d d r結構,該結構 複製成員s a l e n和s a f a m i l y,但按那個協議的要 求來定義成員s a d a t a。以太鏈路層位址儲存結構 struct sockaddr dl define lladdr s ...

mysql 介面庫 mysql 資料庫介面

標籤 1.mysql sqlstate const char mysql sqlstate mysql mysql 描述返回由null終結的字串,該字串包含關於上次錯誤的sqlstate錯誤 錯誤 包含5個字元。00000 表示無錯誤。其值由ansi sql和odbc指定。注意 並非所有的mysql...