PDO Placeholders: Valid Characters
When working with PHP and PDO, the characters that can be used in placeholders are crucial for the proper execution of prepared statements. While the PDO documentation provides limited information on this aspect, it's essential to understand the restrictions to avoid errors.
While placeholder names can be named with letters, numbers, and underscores, certain characters like hyphens are not allowed. As demonstrated in the example below, using a hyphen in the placeholder name ':colour' can cause the query to fail:
$sth = $dbh->prepare('SELECT name, colour, calories FROM fruit WHERE calories < :calories AND colour = :colour');
To ascertain the valid characters, we can examine the source code:
BINDCHR = [:][a-zA-Z0-9_]+;
This regex reveals that placeholder names must adhere to the following rules:
Therefore, when dynamically generating placeholder names, it's crucial to adhere to these restrictions to ensure the proper execution of prepared statements.
The above is the detailed content of What Characters Are Valid in PDO Placeholders?. For more information, please follow other related articles on the PHP Chinese website!