PHP教程課件講義:PDO_第1頁
PHP教程課件講義:PDO_第2頁
PHP教程課件講義:PDO_第3頁
PHP教程課件講義:PDO_第4頁
PHP教程課件講義:PDO_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論