Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Обрабатывает строку для использования в запросе, заключая входную строку в кавычки, как того требует основная база данных SQL Server. PDO::quote будет экранировать специальные символы во входной строке с помощью стиля кавычек, подходящего для SQL Server.
Синтаксис
string PDO::quote( $string[, $parameter_type ] )
Параметры
$string: строка для заключения в кавычки.
$parameter_type: необязательный символ (целое число), указывающий тип данных. Значение по умолчанию — PDO::PARAM_STR.
Новые константы PDO появились в PHP 7.2 для поддержки сопоставления строк в Юникоде и других кодировках. Строки Юникода можно заключить в кавычки с префиксом N (например, N'string' вместо 'string').
- PDO::P ARAM_STR_NATL — это новый тип для строк Юникода, который применяется в операции побитового ИЛИ со значением PDO::PARAM_STR
- PDO::P ARAM_STR_CHAR — это новый тип для строк, отличных от Юникода, который применяется в операции побитового ИЛИ со значением PDO::PARAM_STR
- PDO::ATTR_DEFAULT_STR_PARAM — задайте значение PDO::PARAM_STR_NATL или PDO::PARAM_STR_CHAR, чтобы задать значение по умолчанию для операции побитового ИЛИ со значением PDO::PARAM_STR
Начиная с версии 5.8.0 эти константы можно использовать с PDO::quote.
Возвращаемое значение
В кавычках строка, которую можно передать в инструкцию SQL или значение false, если сбой.
Замечания
Добавлена поддержка PDO версии 2.0 драйверов Майкрософт для PHP для SQL Server.
Пример экранирования строки
<?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 quote
Следующий скрипт демонстрирует, как расширенные строковые типы влияют на работу PDO::quote () в PHP версии 7.2 и более поздних.
<?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'
?>