(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.1)
PDO::quote — Entrecomilla una cadena de caracteres para usarla en una consulta
PDO::quote() entrecomilla el string de entrada (si fuera necesario) y escapa los caracteres especiales contenidos en dicho string, usando un estilo de entrecomillado apropiado para el controlador subyacente.
Si se usa esta función para construir sentencias SQL, se recomienda encarecidamente usar PDO::prepare() para preparar sentencias SQL con los parámetros vinculados en vez de usar PDO::quote() para interpolar entradas del usuario en una consulta SQL. Las sentencias preparadas con parámetros vinculados no son sólo más portables, más convenientes, e inmunes a inyecciones SQL, sino que son mucho más rápidas de ejecutar que las consultas interpoladas, ya que tanto el lado del servidor como el del cliente pueden almacenar en caché una forma compilada de la consulta.
No todos los controladores de PDO implementan este método (como ejemplo notable, PDO_ODBC). En su lugar, se ha de considerar el uso de sentencias preparadas.
El conjunto de caracteres debe establecerse o bien al nivel del servidor, o dentro de la misma conexión a la base de datos (dependiendo del controlador) para que afecte a PDO::quote(). Véase la documentación específica del controlador para más información.
string
La cadena de caracteres a entrecomillar.
parameter_type
Proporciona una declaración de tipo de datos para los controladores que tengan un estilo de entrecomillado alternativo.
Devuelve un string entrecomillado teóricamente seguro para pasarlo a una
sentencia SQL. Devuelve false
si el controlador no soporta el entrecomillado
en esta forma.
Ejemplo #1 Entrecomillar una cadena de caracteres normal
<?php
$conexión = new PDO('sqlite:/home/lynn/music.sql3');
/* Cadena simple */
$cadena = 'Agradable';
print "Cadena sin entrecomillar: $cadena\n";
print "Cadena entrecomillada: " . $conexión->quote($cadena) . "\n";
?>
El resultado del ejemplo sería:
Cadena sin entrecomillar: Agradable Cadena entrecomillada: 'Agradable'
Ejemplo #2 Entrecomillar una cadena peligrosa
<?php
$conexión = new PDO('sqlite:/home/lynn/music.sql3');
/* Cadena peligrosa */
$cadena = 'Cadena \' desagradable';
print "Cadena sin entrecomillar: $cadena\n";
print "Cadena entrecomillada:" . $conexión->quote($cadena) . "\n";
?>
El resultado del ejemplo sería:
Cadena sin entrecomillar: Cadena ' desagradable Cadena entrecomillada: 'Cadena '' desagradable'
Ejemplo #3 Entrecomillar una cadena compleja
<?php
$conexión = new PDO('sqlite:/home/lynn/music.sql3');
/* Cadena compleja */
$cadena = "Ca'de''na \"co'\"mpleja";
print "Cadena sin entrecomillar: $cadena\n";
print "Cadena entrecomillada: " . $conexión->quote($cadena) . "\n";
?>
El resultado del ejemplo sería:
Cadena sin entrecomillar: Ca'de''na "co'"mpleja Cadena entrecomillada: 'Ca''de''''na "co''"mpleja'