Home > Backend Development > PHP Tutorial > What Characters Are Valid in PDO Placeholders?

What Characters Are Valid in PDO Placeholders?

Mary-Kate Olsen
Release: 2024-12-17 09:08:25
Original
309 people have browsed it

What Characters Are Valid in PDO Placeholders?

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');
Copy after login

To ascertain the valid characters, we can examine the source code:

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

This regex reveals that placeholder names must adhere to the following rules:

  • They can optionally start with a colon (':')
  • They must consist of letters, numbers, or underscores
  • Hyphens are not permitted

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!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template