最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

PDO--PHPDataObjects

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-09 15:05:19
文檔

PDO--PHPDataObjects

PDO--PHPDataObjects:PDO的環(huán)境配置:開啟支持PDO 在php.ini配置文件中開啟:extension=php_pdo.dllextension=php_pdo_mysql.dll在PDO操作中涉及到類:PDO、PDOStatement(預(yù)處理對象)、PDOException(異常類)一、 PDO類的構(gòu)造方法:---------------
推薦度:
導(dǎo)讀PDO--PHPDataObjects:PDO的環(huán)境配置:開啟支持PDO 在php.ini配置文件中開啟:extension=php_pdo.dllextension=php_pdo_mysql.dll在PDO操作中涉及到類:PDO、PDOStatement(預(yù)處理對象)、PDOException(異常類)一、 PDO類的構(gòu)造方法:---------------

PDO的環(huán)境配置:開啟支持PDO 在php.ini配置文件中開啟:extension=php_pdo.dllextension=php_pdo_mysql.dll在PDO操作中涉及到類:PDO、PDOStatement(預(yù)處理對象)、PDOException(異常類)一、 PDO類的構(gòu)造方法:-------------------------------------------

PDO的環(huán)境配置:開啟支持PDO 在php.ini配置文件中開啟:
	extension=php_pdo.dll
	extension=php_pdo_mysql.dll
	
	在PDO操作中涉及到類:PDO、PDOStatement(預(yù)處理對象)、PDOException(異常類)

一、 PDO類的構(gòu)造方法:
---------------------------------------------------------
 PDO __construct( string dsn 
	[, string username 
	[, string password 
	[, array driver_options]]] );
 其中:dsn數(shù)據(jù)庫連接信息如“mysql:host=localhost;dbname=庫名”
	 dsn的格式:”驅(qū)動名:host=主機名;dbname=庫名“
 username:用戶名
 password:密碼
 driver_options:配置選項:
 如: PDO::ATTR_PERSISTENT=>true,是否開啟持久鏈接
	 *PDO::ATTR_ERRMODE=>錯誤處理模式:(可以是以下三個)(3)
	PDO::ERRMODE_SILENT:不報錯誤(忽略)(0)
	PDO::ERRMODE_WARNING:以警告的方式報錯(1)
	*PDO::ERRMODE_EXCEPTION:以異常的方式報錯(推薦使用)。(2)

$pdo = new PDO("mysql:host=localhost;dbname=lamp36db","root","root");
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
其他方法:
--------------------------------------------------------
1. query($sql); 用于執(zhí)行查詢SQL語句。返回PDOStatement對象
2. exec($sql); 用于執(zhí)行增、刪、改操作,返回影響行數(shù);
3. getAttribute(); 獲取一個"數(shù)據(jù)庫連接對象"屬性。
4. setAttribute(); 設(shè)置一個"數(shù)據(jù)庫連接對象"屬性。
5. beginTransaction 開啟一個事物(做一個回滾點)
6. commit	提交事務(wù)
7. rollBack	事務(wù)回滾操作。 
8. errorCode	獲取錯誤碼 
9. errorInfo	獲取錯誤信息 
10.lastInsertId 獲取剛剛添加的主鍵值。
11.prepare	創(chuàng)建SQL的預(yù)處理,返回PDOStatement對象
12.quote	為sql字串添加單引號。


預(yù)處理對象PDOStatement對象:
=============================================
我們可以通過PDO的方法來獲取PDOStatement:
 1.PDO的query(查詢sql)方法獲取,用于解析結(jié)果集
 2.PDO的prepare(SQL)方法獲取,用于處理參數(shù)式sql并執(zhí)行操作。

PDOstatement對象的方法:
----------------------------------------------------------------
1、fetch() 返回結(jié)果集的下一行,結(jié)果指針下移,到頭返回false 。
 	參數(shù): 	PDO::FETCH_BOTH (default)、:索引加關(guān)聯(lián)數(shù)組模式
	 	PDO::FETCH_ASSOC、	 :關(guān)聯(lián)數(shù)組模式
 	 	PDO::FETCH_NUM、	 :索引數(shù)組模式
	PDO::FETCH_OBJ、	 :對象模式
	PDO::FETCH_LAZY	 :所有模式(SQL語句和對象)
	
2、fetchAll() 通過一次調(diào)用返回所有結(jié)果,結(jié)果是以數(shù)組形式保存
 	參數(shù):PDO::FETCH_BOTH (default)、
	PDO::FETCH_ASSOC、
	PDO::FETCH_NUM、
	PDO::FETCH_OBJ、
	PDO::FETCH_COLUMN表示取指定某一列,
	如:$rslist = $stmt->fetchAll(PDO::FETCH_COLUMN,2);取第三列
3、execute() 	負責(zé)執(zhí)行一個準備好了的預(yù)處理語句 
4. fetchColumn()返回結(jié)果集中下一行某個列的值
5. setFetchMode()設(shè)置需要結(jié)果集合的類型
6. rowCount() 	返回使用增、刪、改、查操作語句后受影響的行總數(shù)
7. setAttribute()為一個預(yù)處理語句設(shè)置屬性
8. getAttribute()獲取一個聲明的屬性
9. errorCode() 	獲取錯誤碼
10. errorInfo() 獲取錯誤信息
11. bindParam() 將參數(shù)綁定到相應(yīng)的查詢占位符上
 bool PDOStatement::bindParam ( mixed $parameter , mixed &$variable [, int $data_type [, int $length [, mixed $driver_options ]]] ) 其中: $parameter:占位符名或索引偏移量 &$variable:參數(shù)的值,需要按引用傳遞也就是必須放一個變量
 其中參數(shù):$data_type:數(shù)據(jù)類型PDO::PARAM_BOOL/PDO::PARAM_NULL/PDO::PARAM_INT/PDO::PARAM_STR/
 	 	 PDO::PARAM_LOB/PDO::PARAM_STMT/PDO::PARAM_INPUT_OUTPUT
 $length:指數(shù)據(jù)類型的長度 $driver_options:驅(qū)動選項。
12. bindColumn() 用來匹配列名和一個指定的變量名,這樣每次獲取各行記錄時,會自動將相應(yīng)的值賦給變量。
13. bindValue() 將一值綁定到對應(yīng)的一個參數(shù)中
14. nextRowset() 檢查下一行集
15. columnCount() 在結(jié)果集中返回列的數(shù)目
16. getColumnMeta() 在結(jié)果集中返回某一列的屬性信息
17. closeCursor() 關(guān)閉游標,使該聲明再次執(zhí)行


在PDO中參數(shù)式的SQL語句有兩種(預(yù)處理sql):
 1.insert into stu(id,name) value(?,?);	//?號式(適合參數(shù)少的)	
 2.insert into stu(id,name) value(:id,:name);	// 別名式(適合參數(shù)多的)
在PDO中為參數(shù)式SQL語句賦值有三種:
 1.使用數(shù)組 
	 $stmt->execute(array("lamp1404","qq2"));
 	 $stmt->execute(array("id"=>"lamp1404","name"=>"qq2"));	
 2.使用方法單個賦值
	 $stmt->bindValue(1,"lamp1901");	
	 $stmt->bindValue(2,"qq2");
	 $stmt->execute();

	 $stmt->bindValue(":id","lamp1901",PDO::PARAM_STR);	 //帶指定類型
	 $stmt->bindValue(":name","qq2",PDO::PARAM_STR);
	 $stmt->execute();
	 
 3. 使用方法綁定變量
	 $stmt->bindParam(":id",$id);	
	 $stmt->bindParam(":name",$name);
	 $id="lamp1401";
	 $name="qq2";
 $stmt->execute();
	 
事務(wù)處理
-----------------------------------------------	
	事務(wù):將多條sql操作(增刪改)作為一個操作單元,要么都成功,要么都失敗。(如果一次插入多條數(shù)據(jù),一條執(zhí)行失敗,數(shù)據(jù)回滾,全部刪除)-----
	
4. PDO對事務(wù)的支持
	第一:被操作的表必須是innoDB類型的表(支持事務(wù))
	MySQL常用的表類型:MyISAM(非事務(wù))增刪改速度快、InnodB(事務(wù)型)安全性高
	//更改表的類型為innoDB類型
	mysql> alter table stu engine=innodb;
	Query OK, 29 rows affected (0.34 sec)
	Records: 29 Duplicates: 0 Warnings: 0
	//查看表結(jié)構(gòu)
	mysql> show create table stu\G; 
	 
	第二:使用PDO就可以操作數(shù)據(jù)庫了
	使用到了PDO中的方法:
	beginTransaction 開啟一個事物(做一個回滾點)
	commit	提交事務(wù)
	rollBack	事務(wù)回滾操作。 
	
	使用情況:當(dāng)做多條sql語句處理時(增刪改),要求是都必須成功。


聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

PDO--PHPDataObjects

PDO--PHPDataObjects:PDO的環(huán)境配置:開啟支持PDO 在php.ini配置文件中開啟:extension=php_pdo.dllextension=php_pdo_mysql.dll在PDO操作中涉及到類:PDO、PDOStatement(預(yù)處理對象)、PDOException(異常類)一、 PDO類的構(gòu)造方法:---------------
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top