在带有 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();
?>
那么在此示例中,字符串 ':colour' 中允许使用哪些字符?
最简单的方法就是检查源代码 https://github.com/php/php-src/blob/5638fafa665899523861a12966b42a9c609a1664/ext/pdo/pdo_sql_parser.re#L48:
BINDCHR = [:][a-zA-Z0-9_]+;
您可以使用字母数字+下划线。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)