PDO::quote

下載 PHP 驅動程式

將引號放在基礎 SQL Server 資料庫所需的輸入字串前後,以處理查詢中使用的字串。 PDO::quote 將使用適合 SQL Server 的引號樣式,逸出輸入字串中的特殊字元。

語法

  
string PDO::quote( $string[, $parameter_type ] )  

參數

$string:要加上引號的字串。

$parameter_type:指出資料類型的選擇性 (整數) 符號。 預設值是 PDO::PARAM_STR。

PHP 7.2 引進了新的 PDO 常數,以新增繫結 Unicode 和非 Unicode 字串 \(英文\) 的支援。 Unicode 字串可以用引號括住,並以 N 作為前置詞 (例如 N'string',而不是 'string')。

  1. PDO::PARAM_STR_NATL - 適用於 Unicode 字串的新類型,以位元 OR 的形式套用至 PDO::PARAM_STR
  2. PDO::PARAM_STR_CHAR - 適用於非 Unicode 字串的新類型,以位元 OR 的形式套用至 PDO::PARAM_STR
  3. PDO::ATTR_DEFAULT_STR_PARAM - 設定為 PDO::PARAM_STR_NATL 或 PDO::PARAM_STR_CHAR 以表示以位元 OR 的形式套用至 PDO::PARAM_STR 的預設值

從版本 5.8.0 開始,可以搭配 PDO::quote 使用這些常數。

傳回值

可以傳遞至 SQL 陳述式的加上引號的字串,如果失敗則傳回 false。

備註

Microsoft Drivers for PHP for SQL Server 2.0 版已新增 PDO 支援。

字串逸出範例

<?php  
$database = "test";  
$server = "(local)";  
$conn = new PDO( "sqlsrv:server=$server ; Database = $database", "", "");  
  
$param = 'a \' g';  
$param2 = $conn->quote( $param );  
  
$query = "INSERT INTO Table1 VALUES( ?, '1' )";  
$stmt = $conn->prepare( $query );  
$stmt->execute(array($param));  
  
$query = "INSERT INTO Table1 VALUES( ?, ? )";  
$stmt = $conn->prepare( $query );  
$stmt->execute(array($param, $param2));  
?>  

PDO 報價範例

下列指令碼顯示了一些範例,這些範例說明擴充字串類型如何影響 PHP 7.2+ 的 PDO::quote()。

<?php
$database = "test";
$server = "(local)";
$db = new PDO("sqlsrv:server=$server; Database=$database", "", "");

$db->quote('über', PDO::PARAM_STR | PDO::PARAM_STR_NATL); // N'über'
$db->quote('foo'); // 'foo'

$db->setAttribute(PDO::ATTR_DEFAULT_STR_PARAM, PDO::PARAM_STR_NATL);
$db->quote('über'); // N'über'
$db->quote('foo', PDO::PARAM_STR | PDO::PARAM_STR_CHAR); // 'foo'
?>

另請參閱

PDO 類別

PDO