1. 程式人生 > >PDO相關函數

PDO相關函數

url ati 包含 ring toc bsp 可能 數值 ase

技術分享

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::__construct — 創建一個表示數據庫連接的 PDO 實例

說明

PDO::__construct ( string $dsn [, string $username [, string $password [, array $driver_options ]]] )

創建一個表示連接到請求數據庫的數據庫連接 PDO 實例。

參數

dsn

數據源名稱或叫做 DSN,包含了請求連接到數據庫的信息。

通常,一個 DSN 由 PDO 驅動名、緊隨其後的冒號、以及具體 PDO 驅動的連接語法組成。更深入的信息能從 PDO 具體驅動文檔找到。

The dsn 參數支持三種不同的方式 創建一個數據庫連接:

Driver invocation

dsn 包含完整的DSN。

URI invocation

dsn consists of uri: followed by a URI that defines the location of a file containing the DSN string. The URI can specify a local file or a remote URL.

uri:file:///path/to/dsnfile

Aliasing

dsn consists of a name name that maps to pdo.dsn.name

in php.ini defining the DSN string.

Note:

別名必須得在 php.ini 中定義了,不能是在 .htaccesshttpd.conf 中 。

username

DSN字符串中的用戶名。對於某些PDO驅動,此參數為可選項。

password

DSN字符串中的密碼。對於某些PDO驅動,此參數為可選項。

driver_options

一個具體驅動的連接選項的鍵=>值數組。

返回值

成功則返回一個PDO對象。

成功則返回一個PDO對象。

錯誤/異常

如果試圖連接到請求的數據庫失敗,則PDO::__construct()

拋出一個 PDO異常(PDOException) 。

技術分享

技術分享

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::exec — 執行一條 SQL 語句,並返回受影響的行數

說明

int PDO::exec ( string $statement )

PDO::exec() 在一個單獨的函數調用中執行一條 SQL 語句,返回受此語句影響的行數。

PDO::exec() 不會從一條 SELECT 語句中返回結果。對於在程序中只需要發出一次的 SELECT 語句,可以考慮使用 PDO::query()。對於需要發出多次的語句,可用 PDO::prepare() 來準備一個 PDOStatement 對象並用 PDOStatement::execute() 發出語句。

參數

statement

要被預處理和執行的 SQL 語句。

查詢中的數據應該被 妥善地轉義 。

返回值

PDO::exec() 返回受修改或刪除 SQL 語句影響的行數。如果沒有受影響的行,則 PDO::exec() 返回 0。

技術分享

技術分享

技術分享

技術分享

PDO::setAttribute — 設置屬性

說明

bool PDO::setAttribute ( int $attribute , mixed $value )

設置數據庫句柄屬性。下面列出了一些可用的通用屬性;有些驅動可能使用另外的特定屬性。

  • PDO::ATTR_CASE:強制列名為指定的大小寫。

    • PDO::CASE_LOWER:強制列名小寫。

    • PDO::CASE_NATURAL:保留數據庫驅動返回的列名。

    • PDO::CASE_UPPER:強制列名大寫。

  • PDO::ATTR_ERRMODE:錯誤報告。

    • PDO::ERRMODE_SILENT: 僅設置錯誤代碼。

    • PDO::ERRMODE_WARNING: 引發 E_WARNING 錯誤

    • PDO::ERRMODE_EXCEPTION: 拋出 exceptions 異常。

  • PDO::ATTR_ORACLE_NULLS(在所有驅動中都可用,不僅限於Oracle): 轉換 NULL 和空字符串。

    • PDO::NULL_NATURAL: 不轉換。

    • PDO::NULL_EMPTY_STRING: 將空字符串轉換成 NULL

    • PDO::NULL_TO_STRING: 將 NULL 轉換成空字符串。

  • PDO::ATTR_STRINGIFY_FETCHES: 提取的時候將數值轉換為字符串。 Requires bool.

  • PDO::ATTR_STATEMENT_CLASS: 設置從PDOStatement派生的用戶提供的語句類。 不能用於持久的PDO實例。 需要 array(string 類名, array(mixed 構造函數的參數))

  • PDO::ATTR_TIMEOUT: 指定超時的秒數。並非所有驅動都支持此選項,這意味著驅動和驅動之間可能會有差異。比如,SQLite等待的時間達到此值後就放棄獲取可寫鎖,但其他驅動可能會將此值解釋為一個連接或讀取超時的間隔。 需要 int 類型。

  • PDO::ATTR_AUTOCOMMIT(在OCI,Firebird 以及 MySQL中可用): 是否自動提交每個單獨的語句。

  • PDO::ATTR_EMULATE_PREPARES啟用或禁用預處理語句的模擬。 有些驅動不支持或有限度地支持本地預處理。使用此設置強制PDO總是模擬預處理語句(如果為 TRUE ),或試著使用本地預處理語句(如果為 FALSE)。如果驅動不能成功預處理當前查詢,它將總是回到模擬預處理語句上。 需要 bool 類型。

  • PDO::MYSQL_ATTR_USE_BUFFERED_QUERY(在MySQL中可用): 使用緩沖查詢。

  • PDO::ATTR_DEFAULT_FETCH_MODE: 設置默認的提取模式。

  • 返回值

    成功時返回 TRUE, 或者在失敗時返回 FALSE

PDO相關函數