Php PDO占位符的有效字符

Php PDO占位符的有效字符,php,pdo,Php,Pdo,在使用PDO的PHP中,我们仅限于使用哪些字符。我试着在文档和网上查找,但没有结果 我确实找到了一篇帖子,其中一位用户在名字中使用了一个炒作,打破了查询。我正在编写一个动态生成这些名称的函数,由于连字符不是no,我想知道是否有一个替代列表 <?php /* Execute a prepared statement by binding PHP variables */ $calories = 150; $colour = 'red'; $sth = $dbh->prepare('SE

在使用PDO的PHP中,我们仅限于使用哪些字符。我试着在文档和网上查找,但没有结果

我确实找到了一篇帖子,其中一位用户在名字中使用了一个炒作,打破了查询。我正在编写一个动态生成这些名称的函数,由于连字符不是no,我想知道是否有一个替代列表

<?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();
?>


因此,在本例中,字符串“:color”中允许哪些字符?

最简单的方法是检查:


您可以使用字母数字+下划线。

如果我读对了,它是字母数字字符加下划线。

我不确定具体的限制是什么,但字母数字和下划线从未让我失望:-)只要看看源代码,我就可以看到其中的错误。。。他们的评论表达是错误的<代码>--后面必须跟空格,而不仅仅是任何非换行符字符。如果有人感兴趣,尚未更改。
BINDCHR     = [:][a-zA-Z0-9_]+;