版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PDOPDO簡介PDO(PHPDataObjectsLayer)提供一個(gè)公共的數(shù)據(jù)庫系統(tǒng)接口,它使用C語言做底層開發(fā),運(yùn)行速度比較快。PDO擴(kuò)展為PHP訪問數(shù)據(jù)庫定義了一個(gè)輕量級(jí)的、一致性的接口,它提供了一個(gè)數(shù)據(jù)訪問抽象層PDO以PHP5.1為基礎(chǔ)進(jìn)行設(shè)計(jì),嚴(yán)格意義上講歸為PHP5的SPL庫之一,與MySQLi擴(kuò)展功能相似PDO的安裝安裝PDOMySQL驅(qū)動(dòng)Linux:
cd/ports/database/pecl-PDO_MYSQL
makeinstallWindows:自帶,不需要安裝配置文件Linux:extension=pdo_mysql.soWindows:extension=pdo_mysql.dllPDO類query()exec()prepare()quote()beginTransaction()rollBack()commit()errorCode()errorInfo()setAttribute()getAttribute()lastInsertId()PDOStatement類execute()fetch()fetchAll()fetchColumn()setFetchMode()rowCount()setAttribute()getAttribute()errorCode()errorInfo()bindParam()bindColumn()bindValue()nextRowset()columnCount()rowCount()nextRowset()getColumnMeta()closeCursor()PDO連接數(shù)據(jù)庫PDO連接數(shù)據(jù)庫和其他數(shù)據(jù)庫抽象層區(qū)別不大try{ $con=newPDO
('mysql:host=localhost;dbname=book','root','root'); //如果連接失敗,則拋出異常}catch(PDOException$e){ echo$e->getMessage();}連接字符串MySQL"mysql:host=$host;dbname=$db"SQLite"sqlite:$db"PostgreSQL"pgsql:host=$hostdbname=$db",持久連接持久連接速度快,不用每次開關(guān)連接。$opt=array(PDO::ATTR_PERSISTENT=>TRUE);try{ $con=newPDO
('mysql:host=localhost;dbname=book','root','root',$opt); //如果連接失敗,則拋出異常}catch(PDOException$e){ echo$e->getMessage();}DSN-ODBC連接使用一個(gè)DSN數(shù)據(jù)源名稱,定義ODBC數(shù)據(jù)源驅(qū)動(dòng)連接ini_set("pdo.dsn.dbserver","mysql::test");try{ $con=newPDO('dbserver'); //如果連接失敗,則拋出異常}catch(PDOException$e){ echo$e->getMessage();}錯(cuò)誤與異常處理設(shè)置PDO獲取得錯(cuò)誤信息的方式$con->setAttribute
(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXECPTION);PDO::ERROR_SILENTPDO::ERROR_WARNINGPDO::ERROR_EXCEPTION面向過程$con->errorCode():SQL語句錯(cuò)誤代碼$con->errorInfo():錯(cuò)誤信息面向?qū)ο蟛东@PDOException異常對象使用PDO查詢PDO的查詢方式直接查詢 $rs=$con->exec("select*frombooks"); $rs=$con->query("select*frombooks");預(yù)處理 $st=$con->prepare("select*frombookswhereid=?andname=?); $st->execute(array(201,'alex')); $row=$st->fetch();獲取查詢結(jié)果獲取查詢結(jié)果包括:數(shù)組、字符串、對象、回調(diào)函數(shù)等fetchColumn()fetch()fetchAll()setFetchMode()PDO::FETCH_NUMPDO::FETCH_ASSOCPDO::FETCH_CLASS$sql="SELECT*FROMbooks";$rs=$conn->query($sql);while($row=$rs->fetch(PDO::FETCH_ASSOC)){ echo$row['title']."<br>";}綁定參數(shù)第一種寫法,使用?號(hào)$sql="insertbooks(id,name,title)values(?,?,?);";$stmt=$con->prepare($sql);$stmt->execute(array(219,"alex","PHP"));第二種寫法,使用:號(hào)加上標(biāo)識(shí)符$sql="insertbooks(id,name,title)values(:id,:name,:title);";$stmt=$con->prepare($sql);$stmt->execute(array("id"=>219,"name"=>"alex","title"=>"PHP"));第三種方法,bindValue()$sql="insertbooks(id,name,title)values(?,?,?);";$stmt=$con->prepare($sql);$stmt->bindValue(1,219);$stmt->bindValue(2,"alex");$stmt->bindValue(3,"PHP"));$stmt->execute();第四種寫法$sql="insertbooks(id,name,title)values(:id,:name,:title);";$stmt=$con->prepare($sql);$stmt->bindValue(":id",219);$stmt->bindValue(":name","alex");$stmt->bindValue(":title","PHP"));$stmt->execute();綁定結(jié)果集第一種$sql="selecttitle,namefrombooks";$stmt=$con->prepare($sql);$stmt->execute();$stmt->bindColum(1,$title);$stmt->bindColum(2,$name);while($stmt->fetch(PDO::FETCH_BOUND)){ echo$title."".$name."<br>";}過濾字符串使用PDO過濾引起SQL注入的方法,過濾特殊字符$con->quote()$name=$con->quote($_POST["name"]);BLOB存儲(chǔ)圖片$blob=fopen("img.jpg","rb");$sql="insertbooks(imgdate)values(?)";$stmt=$con->prepare($sql);$stmt->bindParam(1,$blob,PDO::PARAM_LOB);$stmt->execute();讀取圖片$sql="selectimgdatefrombookswhereid=201";$stmt=$con->prepare($sql);$stmt->execute();$stmt->bindColumn(1,$blob,PDO::PARAM_LOB);$stmt->fetch(PDO::FETCH_BOUND);$img=stream_get_contents($blob);//fpassthru($blob);header("Content-Type:image/jpeg");echo$img;事物處理PDO驅(qū)動(dòng)程序支持所有的事物數(shù)據(jù)庫$con->beginTransaction();if($con->exec($sql)===FALSE){ $con->rollback();}$con->commit();存儲(chǔ)過程使用PDO調(diào)用存儲(chǔ)過程$st=$con->prepare("CALLproc(?)");$st->bindParam(1,$str);$str="info";$st->execute();OUTParam$st=$con->prepare("CALLproc(?)");$st->bindParam(1,$str,
PDO_PARAM_STR,40
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025學(xué)生食堂承包合同書
- 2025餐飲發(fā)服務(wù)業(yè)保密協(xié)議合同
- 2025石料運(yùn)輸合同
- 2025年度青年人才公寓租賃合同關(guān)于房屋出租3篇
- 2025年度建筑鋼結(jié)構(gòu)質(zhì)量檢測與安全評估合同3篇
- 二零二五年度新能源汽車企業(yè)職工招聘與產(chǎn)業(yè)鏈整合合同3篇
- 2025年度餐飲連鎖合伙經(jīng)營合同樣本2篇
- 二零二五年度農(nóng)村有機(jī)垃圾堆肥處理與清理服務(wù)合同2篇
- 二零二五年度餐飲兼職煮飯人員培訓(xùn)協(xié)議3篇
- 2025年度模特與造型師拍攝服務(wù)合同3篇
- 山東省淄博市2022-2023學(xué)年高一上學(xué)期期末數(shù)學(xué)試題含答案
- 7【題組七】雙變量的恒成立與存在性問題
- 2023年1月自考11749商務(wù)管理綜合應(yīng)用試題及答案
- 汽車制造整車AUDIT質(zhì)量評審
- 非洲豬瘟防控難點(diǎn)與對策
- 教師如何管理和控制自己的情緒
- 《中外歷史綱要(上)》全冊單元知識(shí)點(diǎn)高頻考點(diǎn)
- (完整版)庭審筆錄(刑事普通程序)
- 耳鳴耳聾-疾病研究白皮書
- ?;方ㄔO(shè)項(xiàng)目安全評價(jià)審查要點(diǎn)
- 信息學(xué)奧賽培訓(xùn)課件 第4課 c++基礎(chǔ)語法for循環(huán)結(jié)構(gòu)(第一課時(shí))
評論
0/150
提交評論