PHP
数据库 | Database

PDO::quote

PDO::quote

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

PDO :: quote - 引用用于查询的字符串。

描述

public string PDO::quote ( string $string [, int $parameter_type = PDO::PARAM_STR ] )

PDO :: quote()在输入字符串周围放置引号(如果需要的话)并使用适合于底层驱动程序的引用样式在输入字符串中转义特殊字符。

如果您在使用此功能来构建SQL语句,强烈建议使用PDO ::准备()准备与绑定参数,而不是使用SQL语句PDO ::引用()用户输入插成的SQL语句。具有绑定参数的准备语句不仅更便携,更方便,不受SQL注入的影响,但通常比内插查询执行速度快得多,因为服务器端和客户端都可以缓存查询的编译形式。

并非所有PDO驱动程序都实现此方法(特别是PDO_ODBC)。考虑使用预处理语句。

警告

安全性:默认字符集

字符集必须在服务器级别或数据库连接本身(取决于驱动程序)内设置,以便影响PDO :: quote()。有关更多信息,请参阅驱动程序特定的文档。

参数

string

要引用的字符串。

parameter_type

为具有备用引用样式的驱动程序提供数据类型提示。

返回值

返回理论上可以传入SQL语句的带引号的字符串。如果驱动程序不支持以这种方式引用,则返回FALSE

示例

示例#1引用普通字符串

<?php $conn = new PDO('sqlite:/home/lynn/music.sql3' /* Simple string */ $string = 'Nice'; print "Unquoted string: $string\n"; print "Quoted string: " . $conn->quote($string) . "\n"; ?>

上面的例子将输出:

Unquoted string: Nice Quoted string: 'Nice'

示例#2引用危险型字符串

<?php $conn = new PDO('sqlite:/home/lynn/music.sql3' /* Dangerous string */ $string = 'Naughty \' string'; print "Unquoted string: $string\n"; print "Quoted string:" . $conn->quote($string) . "\n"; ?>

上面的例子将输出:

Unquoted string: Naughty ' string Quoted string: 'Naughty '' string'

示例#3引用一个复杂的字符串

<?php $conn = new PDO('sqlite:/home/lynn/music.sql3' /* Complex string */ $string = "Co'mpl''ex \"st'\"ring"; print "Unquoted string: $string\n"; print "Quoted string: " . $conn->quote($string) . "\n"; ?>

上面的例子将输出:

Unquoted string: Co'mpl''ex "st'"ring Quoted string: 'Co''mpl''''ex "st''"ring'

扩展内容

  • PDO :: prepare() - 准备执行语句并返回一个语句对象

  • PDOStatement :: execute() - 执行准备好的语句

← PDO::query

PDO::rollBack →