預(yù)定義常量

下列常量由此擴(kuò)展定義,且僅在此擴(kuò)展編譯入 PHP 或在運(yùn)行時(shí)動(dòng)態(tài)載入時(shí)可用。

警告

自 PHP 5.1 起,開始使用類常量。以前的版本使用類似 PDO_PARAM_BOOL 這樣的全局常量。

PDO::PARAM_BOOL (integer)
表示布爾數(shù)據(jù)類型。
PDO::PARAM_NULL (integer)
表示 SQL 中的 NULL 數(shù)據(jù)類型。
PDO::PARAM_INT (integer)
表示 SQL 中的整型。
PDO::PARAM_STR (integer)
表示 SQL 中的 CHAR、VARCHAR 或其他字符串類型。
PDO::PARAM_STR_NATL (integer)
標(biāo)記了字符使用的是國家字符集(national character set)。 自 PHP 7.2.0 起。
PDO::PARAM_STR_CHAR (integer)
標(biāo)記了字符使用的是常規(guī)字符集(regular character set)。 自 PHP 7.2.0 起。
PDO::PARAM_LOB (integer)
表示 SQL 中大對(duì)象數(shù)據(jù)類型。
PDO::PARAM_STMT (integer)
表示一個(gè)記錄集類型。當(dāng)前尚未被任何驅(qū)動(dòng)支持。
PDO::PARAM_INPUT_OUTPUT (integer)
指定參數(shù)為一個(gè)存儲(chǔ)過程的 INOUT 參數(shù)。必須用一個(gè)明確的 PDO::PARAM_* 數(shù)據(jù)類型跟此值進(jìn)行按位或。
PDO::FETCH_LAZY (integer)
指定獲取方式,將結(jié)果集中的每一行作為一個(gè)對(duì)象返回,此對(duì)象的變量名對(duì)應(yīng)著列名。PDO::FETCH_LAZY 創(chuàng)建用來訪問的對(duì)象變量名。在 PDOStatement::fetchAll() 中無效。
PDO::FETCH_ASSOC (integer)
指定獲取方式,將對(duì)應(yīng)結(jié)果集中的每一行作為一個(gè)由列名索引的數(shù)組返回。如果結(jié)果集中包含多個(gè)名稱相同的列,則PDO::FETCH_ASSOC每個(gè)列名只返回一個(gè)值。
PDO::FETCH_NAMED (integer)
指定獲取方式,將對(duì)應(yīng)結(jié)果集中的每一行作為一個(gè)由列名索引的數(shù)組返回。如果結(jié)果集中包含多個(gè)名稱相同的列,則PDO::FETCH_ASSOC每個(gè)列名 返回一個(gè)包含值的數(shù)組。
PDO::FETCH_NUM (integer)
指定獲取方式,將對(duì)應(yīng)結(jié)果集中的每一行作為一個(gè)由列號(hào)索引的數(shù)組返回,從第 0 列開始。
PDO::FETCH_BOTH (integer)
指定獲取方式,將對(duì)應(yīng)結(jié)果集中的每一行作為一個(gè)由列號(hào)和列名索引的數(shù)組返回,從第 0 列開始。
PDO::FETCH_OBJ (integer)
指定獲取方式,將結(jié)果集中的每一行作為一個(gè)屬性名對(duì)應(yīng)列名的對(duì)象返回。
PDO::FETCH_BOUND (integer)
指定獲取方式,返回 TRUE 且將結(jié)果集中的列值分配給通過 PDOStatement::bindParam()PDOStatement::bindColumn() 方法綁定的 PHP 變量。
PDO::FETCH_COLUMN (integer)
指定獲取方式,從結(jié)果集中的下一行返回所需要的那一列。
PDO::FETCH_CLASS (integer)
指定獲取方式,返回一個(gè)所請(qǐng)求類的新實(shí)例,映射列到類中對(duì)應(yīng)的屬性名。

注意: 如果所請(qǐng)求的類中不存在該屬性,則調(diào)用 __set() 魔術(shù)方法

PDO::FETCH_INTO (integer)
指定獲取方式,更新一個(gè)請(qǐng)求類的現(xiàn)有實(shí)例,映射列到類中對(duì)應(yīng)的屬性名。
PDO::FETCH_FUNC (integer)
允許在運(yùn)行中完全用自定義的方式處理數(shù)據(jù)。(僅在 PDOStatement::fetchAll() 中有效)。
PDO::FETCH_GROUP (integer)
根據(jù)值分組返回。通常和 PDO::FETCH_COLUMNPDO::FETCH_KEY_PAIR 一起使用。
PDO::FETCH_UNIQUE (integer)
只取唯一值。
PDO::FETCH_KEY_PAIR (integer)
獲取一個(gè)有兩列的結(jié)果集到一個(gè)數(shù)組,其中第一列為鍵名,第二列為值。自 PHP 5.2.3 起可用。
PDO::FETCH_CLASSTYPE (integer)
根據(jù)第一列的值確定類名。
PDO::FETCH_SERIALIZE (integer)
類似 PDO::FETCH_INTO ,但是以一個(gè)序列化的字符串表示對(duì)象。自 PHP 5.1.0 起可用。從 PHP 5.3.0 開始,如果設(shè)置此標(biāo)志,則類的構(gòu)造函數(shù)從不會(huì)被調(diào)用。
PDO::FETCH_PROPS_LATE (integer)
設(shè)置屬性前調(diào)用構(gòu)造函數(shù)。自 PHP 5.2.0 起可用。
PDO::ATTR_AUTOCOMMIT (integer)
如果此值為 false ,PDO 將試圖禁用自動(dòng)提交以便數(shù)據(jù)庫連接開始一個(gè)事務(wù)。
PDO::ATTR_PREFETCH (integer)
設(shè)置預(yù)取大小來為你的應(yīng)用平衡速度和內(nèi)存使用。并非所有的數(shù)據(jù)庫/驅(qū)動(dòng)組合都支持設(shè)置預(yù)取大小。較大的預(yù)取大小導(dǎo)致性能提高的同時(shí)也會(huì)占用更多的內(nèi)存。
PDO::ATTR_TIMEOUT (integer)
設(shè)置連接數(shù)據(jù)庫的超時(shí)秒數(shù)。
PDO::ATTR_ERRMODE (integer)
關(guān)于此屬性的更多信息請(qǐng)參見 錯(cuò)誤及錯(cuò)誤處理 部分。
PDO::ATTR_SERVER_VERSION (integer)
此為只讀屬性;返回 PDO 所連接的數(shù)據(jù)庫服務(wù)的版本信息。
PDO::ATTR_CLIENT_VERSION (integer)
此為只讀屬性;返回 PDO 驅(qū)動(dòng)所用客戶端庫的版本信息。
PDO::ATTR_SERVER_INFO (integer)
此為只讀屬性。返回一些關(guān)于 PDO 所連接的數(shù)據(jù)庫服務(wù)的元信息。
PDO::ATTR_CONNECTION_STATUS (integer)
PDO::ATTR_CASE (integer)
用類似 PDO::CASE_* 的常量強(qiáng)制列名為指定的大小寫。
PDO::ATTR_CURSOR_NAME (integer)
獲取或設(shè)置使用游標(biāo)的名稱。當(dāng)使用可滾動(dòng)游標(biāo)和定位更新時(shí)候非常有用。
PDO::ATTR_CURSOR (integer)
選擇游標(biāo)類型。 PDO 當(dāng)前支持 PDO::CURSOR_FWDONLYPDO::CURSOR_SCROLL。一般為 PDO::CURSOR_FWDONLY,除非確實(shí)需要一個(gè)可滾動(dòng)游標(biāo)。
PDO::ATTR_DRIVER_NAME (string)
返回驅(qū)動(dòng)名稱。

示例 #1 使用 PDO::ATTR_DRIVER_NAME 的例子

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
  echo 
"Running on mysql; doing something mysql specific here\n";
}
?>

PDO::ATTR_ORACLE_NULLS (integer)
在獲取數(shù)據(jù)時(shí)將空字符串轉(zhuǎn)換成 SQL 中的 NULL 。
PDO::ATTR_PERSISTENT (integer)
請(qǐng)求一個(gè)持久連接,而非創(chuàng)建一個(gè)新連接。關(guān)于此屬性的更多信息請(qǐng)參見 連接與連接管理 。
PDO::ATTR_STATEMENT_CLASS (integer)
設(shè)置返回的 statement 類名。
PDO::ATTR_FETCH_CATALOG_NAMES (integer)
將包含的目錄名添加到結(jié)果集中的每個(gè)列名前面。目錄名和列名由一個(gè)小數(shù)點(diǎn)分開(.)。此屬性在驅(qū)動(dòng)層面支持,所以有些驅(qū)動(dòng)可能不支持此屬性。
PDO::ATTR_FETCH_TABLE_NAMES (integer)
將包含的表名添加到結(jié)果集中的每個(gè)列名前面。表名和列名由一個(gè)小數(shù)點(diǎn)分開(.)。此屬性在驅(qū)動(dòng)層面支持,所以有些驅(qū)動(dòng)可能不支持此屬性。
PDO::ATTR_STRINGIFY_FETCHES (integer)
強(qiáng)制以字符串方式對(duì)待所有的值。
PDO::ATTR_MAX_COLUMN_LEN (integer)
設(shè)置字段名最長的尺寸。
PDO::ATTR_DEFAULT_FETCH_MODE (integer)
自 PHP 5.2.0 起可用。
PDO::ATTR_EMULATE_PREPARES (integer)
自 PHP 5.1.3 起可用。
PDO::ATTR_DEFAULT_STR_PARAM (integer)
設(shè)置默認(rèn) string 參數(shù)類型可以是 PDO::PARAM_STR_NATLPDO::PARAM_STR_CHAR。 自 PHP 7.2.0 起可用
PDO::ERRMODE_SILENT (integer)
如果發(fā)生錯(cuò)誤,則不顯示錯(cuò)誤或異常。希望開發(fā)人員顯式地檢查錯(cuò)誤。此為默認(rèn)模式。關(guān)于此屬性的更多信息請(qǐng)參見 錯(cuò)誤與錯(cuò)誤處理 。
PDO::ERRMODE_WARNING (integer)
如果發(fā)生錯(cuò)誤,則顯示一個(gè) PHP E_WARNING 消息。關(guān)于此屬性的更多信息請(qǐng)參見 錯(cuò)誤與錯(cuò)誤處理。
PDO::ERRMODE_EXCEPTION (integer)
如果發(fā)生錯(cuò)誤,則拋出一個(gè) PDOException 異常。關(guān)于此屬性的更多信息請(qǐng)參見 錯(cuò)誤與錯(cuò)誤處理。
PDO::CASE_NATURAL (integer)
保留數(shù)據(jù)庫驅(qū)動(dòng)返回的列名。
PDO::CASE_LOWER (integer)
強(qiáng)制列名小寫。
PDO::CASE_UPPER (integer)
強(qiáng)制列名大寫。
PDO::NULL_NATURAL (integer)
PDO::NULL_EMPTY_STRING (integer)
PDO::NULL_TO_STRING (integer)
PDO::FETCH_ORI_NEXT (integer)
在結(jié)果集中獲取下一行。僅對(duì)可滾動(dòng)游標(biāo)有效。
PDO::FETCH_ORI_PRIOR (integer)
在結(jié)果集中獲取上一行。僅對(duì)可滾動(dòng)游標(biāo)有效。
PDO::FETCH_ORI_FIRST (integer)
在結(jié)果集中獲取第一行。僅對(duì)可滾動(dòng)游標(biāo)有效。
PDO::FETCH_ORI_LAST (integer)
在結(jié)果集中獲取最后一行。僅對(duì)可滾動(dòng)游標(biāo)有效。
PDO::FETCH_ORI_ABS (integer)
根據(jù)行號(hào)從結(jié)果集中獲取需要的行。僅對(duì)可滾動(dòng)游標(biāo)有效。
PDO::FETCH_ORI_REL (integer)
根據(jù)當(dāng)前游標(biāo)位置的相對(duì)位置從結(jié)果集中獲取需要的行。僅對(duì)可滾動(dòng)游標(biāo)有效。
PDO::CURSOR_FWDONLY (integer)
創(chuàng)建一個(gè)只進(jìn)游標(biāo)的 PDOStatement 對(duì)象。此為默認(rèn)的游標(biāo)選項(xiàng),因?yàn)榇擞螛?biāo)最快且是 PHP 中最常用的數(shù)據(jù)訪問模式。
PDO::CURSOR_SCROLL (integer)
創(chuàng)建一個(gè)可滾動(dòng)游標(biāo)的 PDOStatement 對(duì)象。通過 PDO::FETCH_ORI_* 常量來控制結(jié)果集中獲取的行。
PDO::ERR_NONE (string)
對(duì)應(yīng) SQLSTATE '00000',表示 SQL 語句沒有錯(cuò)誤或警告地成功發(fā)出。當(dāng)用 PDO::errorCode()PDOStatement::errorCode() 來確定是否有錯(cuò)誤發(fā)生時(shí),此常量非常方便。在檢查上述方法返回的錯(cuò)誤狀態(tài)代碼時(shí),會(huì)經(jīng)常用到。
PDO::PARAM_EVT_ALLOC (integer)
分配事件
PDO::PARAM_EVT_FREE (integer)
解除分配事件
PDO::PARAM_EVT_EXEC_PRE (integer)
執(zhí)行一條預(yù)處理語句之前觸發(fā)事件。
PDO::PARAM_EVT_EXEC_POST (integer)
執(zhí)行一條預(yù)處理語句之后觸發(fā)事件。
PDO::PARAM_EVT_FETCH_PRE (integer)
從一個(gè)結(jié)果集中取出一條結(jié)果之前觸發(fā)事件。
PDO::PARAM_EVT_FETCH_POST (integer)
從一個(gè)結(jié)果集中取出一條結(jié)果之后觸發(fā)事件。
PDO::PARAM_EVT_NORMALIZE (integer)
在綁定參數(shù)注冊(cè)允許驅(qū)動(dòng)程序正?;兞棵麜r(shí)觸發(fā)事件。
PDO::SQLITE_DETERMINISTIC (integer)
設(shè)定 PDO::sqliteCreateFunction() 返回的函數(shù)是結(jié)果確定的(deterministic)。 舉例說明:在同一個(gè) SQL statement 內(nèi),函數(shù)的參數(shù)不變,則返回的結(jié)果也不變。 (PHP 7.1.4起有效)