Caracteres válidos PDO para marcadores de posición

Resuelto SeanDowney asked hace 54 años • 2 respuestas

En PHP con PDO, ¿qué caracteres estamos limitados a usar? Intenté buscar en la documentación y en línea, pero fue en vano.

Encontré una publicación en la que un usuario había usado un guión en el nombre que interrumpió la consulta. Estoy escribiendo una función que genera dinámicamente estos nombres y como los guiones no son números, me preguntaba si había una lista de alternativas.

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>

Entonces, en este ejemplo, ¿qué caracteres se permitirían en la cadena ':color'?

SeanDowney avatar Jan 01 '70 08:01 SeanDowney
Aceptado

La forma más sencilla de averiguarlo es simplemente comprobar el código fuente :

BINDCHR     = [:][a-zA-Z0-9_]+;

Puede utilizar caracteres alfanuméricos + guión bajo.

NikiC avatar Apr 27 '2011 20:04 NikiC

Si leo correctamente el código fuente del analizador SQL PDO , son caracteres alfanuméricos más un guión bajo.

Sander Marechal avatar Apr 27 '2011 20:04 Sander Marechal