占位符的 PDO 有效字符

2021-12-26 00:00:00 php pdo

在带有 PDO 的 PHP 中,我们限制使用哪些字符.我试过查看文档和在线,但无济于事.

In PHP with PDO, what characters are we limited to using. I've tried looking in the documentation and online but to no avail.

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

I did find a post where a user had used a hypen in the name which broke the query. I'm writing a function that dynamically generates these names and since hyphens are no nos, I was wondering if there was a list of alternatives.

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

那么在这个例子中,字符串 ':colour' 中允许使用哪些字符?

So in this example what characters would be allowed in the string ':colour'?

推荐答案

最简单的方法就是查看 源代码:

The easiest way to find out, is to just check the source code:

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

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

You can use alphanumeric + underscore.

相关文章