Caracteres válidos PDO para marcadores de posición
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'?
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.
Si leo correctamente el código fuente del analizador SQL PDO , son caracteres alfanuméricos más un guión bajo.