2019-03-15 10:45:31 2084瀏覽
現(xiàn)在參加php培訓學習的小伙伴在不斷的增加,本篇文章小編給大家分享一下php PDO屬性設置與操作方法,本篇文章小編結合實例給大家分析php PDO常見屬性功能及相關的設置、獲取操作技巧,文中有詳細的代碼供大家參考,需要的小伙伴可以隨小編一起來參考一下。
設置PDO在處理數(shù)據(jù)的過程中采用什么方式去處理:
PDO::setAttribute:設置屬性
PDO::getAttribute:獲取屬性
語法:
bool PDO::setAttribute ( int $attribute , mixed $value )
設置數(shù)據(jù)庫句柄屬性。下面列出了一些可用的通用屬性;有些驅(qū)動可能使用另外的特定屬性。
參數(shù):
$attribute
PDO::ATTR_CASE:強制列名為指定的大小寫。他的$value可為:
PDO::CASE_LOWER:強制列名小寫。
PDO::CASE_NATURAL:保留數(shù)據(jù)庫驅(qū)動返回的列名。
PDO::CASE_UPPER:強制列名大寫。
PDO::ATTR_ERRMODE:錯誤報告。他的$value可為:
PDO::ERRMODE_SILENT: 僅設置錯誤代碼。
PDO::ERRMODE_WARNING: 引發(fā) E_WARNING 錯誤
PDO::ERRMODE_EXCEPTION: 拋出 exceptions 異常。
PDO::ATTR_ORACLE_NULLS (在所有驅(qū)動中都可用,不僅限于Oracle): 轉(zhuǎn)換 NULL 和空字符串。他的$value可為:
PDO::NULL_NATURAL: 不轉(zhuǎn)換。
PDO::NULL_EMPTY_STRING: 將空字符串轉(zhuǎn)換成 NULL 。
PDO::NULL_TO_STRING: 將 NULL 轉(zhuǎn)換成空字符串。
PDO::ATTR_STRINGIFY_FETCHES: 提取的時候?qū)?shù)值轉(zhuǎn)換為字符串。 Requires bool .
PDO::ATTR_STATEMENT_CLASS: 設置從PDOStatement派生的用戶提供的語句類。 不能用于持久的PDO實例。 需要 array(string 類名, array(mixed 構造函數(shù)的參數(shù)))。
PDO::ATTR_TIMEOUT: 指定超時的秒數(shù)。并非所有驅(qū)動都支持此選項,這意味著驅(qū)動和驅(qū)動之間可能會有差異。比如,SQLite等待的時間達到此值后就放棄獲取可寫鎖,但其他驅(qū)動可能會將此值解釋為一個連接或讀取超時的間隔。 需要 int 類型。
PDO::ATTR_AUTOCOMMIT (在OCI,F(xiàn)irebird 以及 MySQL中可用): 是否自動提交每個單獨的語句。
PDO::ATTR_EMULATE_PREPARES 啟用或禁用預處理語句的模擬。 有些驅(qū)動不支持或有限度地支持本地預處理。使用此設置強制PDO總是模擬預處理語句(如果為 TRUE ),或試著使用本地預處理語句(如果為 FALSE )。如果驅(qū)動不能成功預處理當前查詢,它將總是回到模擬預處理語句上。 需要 bool 類型。
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (在MySQL中可用): 使用緩沖查詢。
PDO::ATTR_DEFAULT_FETCH_MODE: 設置默認的提取模式。關于模式的說明可以在 PDOStatement::fetch() 文檔找到。
常用屬性
PDO::ATTR_AUTOCOMMIT:設置當前連接Mysql服務器的客戶端的SQL語句是否自動執(zhí)行,默認是自動提交
//自動提交屬性 var_dump($pdo->getAttribute(PDO::ATTR_AUTOCOMMIT)); //1 $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,0); var_dump($pdo->getAttribute(PDO::ATTR_AUTOCOMMIT)); //0
PDO::ATTR_CASE:當pdo從結果集中獲取數(shù)據(jù)的時候,如何處理對應的字段的名字
PDO::CASE_LOWER:將所有字段都小寫顯示
PDO::CASE_UPPER:所有字段都大寫顯示
PDO::CASE_NATURAL:原本怎么樣就怎么樣
$pdo->setAttribute(PDO::ATTR_CASE,PDO::CASE_NATURAL); //或 $pdo->setAttribute(PDO::ATTR_CASE,1); var_dump(PDO::CASE_UPPER); //1 轉(zhuǎn)換為大寫 var_dump(PDO::CASE_LOWER); //2 轉(zhuǎn)換為小寫 var_dump(PDO::CASE_NATURAL); //0 是怎樣就是怎樣 $sql = "select * from user "; $stmt = $pdo->query($sql); var_dump($stmt->fetch(PDO::FETCH_ASSOC));
PDO::ATTR_ERRMODE:錯誤模式,當pdo出現(xiàn)錯誤的時候到底使用哪種模式進行處理
PDO::ERRMODE_SILENT:靜默模式,默認的出錯了不管
PDO::ERRMODE_WARNING:警告模式,如果出錯了就會報出警告
PDO::ERRMODE_EXCEPTION:異常模式,如果出錯會采用異常來處理(PDOException)
var_dump($pdo->getAttribute(PDO::ATTR_ERRMODE)); var_dump(PDO::ERRMODE_SILENT); //0 靜默模式,默認的出錯了不管 var_dump(PDO::ERRMODE_WARNING); //1 警告模式,如果出錯了就會報出警告 var_dump(PDO::ERRMODE_EXCEPTION); //2 異常模式,如果出錯會采用異常來處理(PDOException)
PDO::ATTR_PERSISTENT:當前對Mysql服務器的連接是否是長連接
TRUE:是長連接(長連接的使用必須要配合:Apache(connection:keepAlive),Mysqld)
FALSE:默認的,非長連接
什么情況下使用長連接?
不同的腳本的執(zhí)行間距非常短,同時每個腳本都要操作數(shù)據(jù)庫(Mysql:mysql_pconnect())
想要了解更多關于php開發(fā)方面內(nèi)容的小伙伴,請關注扣丁學堂php培訓官網(wǎng)、微信等平臺,扣丁學堂IT職業(yè)在線學習教育平有專業(yè)的php講師為您指導,此外扣丁學堂老師精心推出的php視頻教程定能讓你快速掌握php從入門到精通開發(fā)實戰(zhàn)技能。扣丁學堂php技術交流群:374332265。
【關注微信公眾號獲取更多學習資料】