Maison  >  Article  >  développement back-end  >  Déclarations préparées par PDO : les deux-points sont-ils obligatoires dans les noms de paramètres ?

Déclarations préparées par PDO : les deux-points sont-ils obligatoires dans les noms de paramètres ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-15 01:28:02880parcourir

PDO Prepared Statements: Are Colons Required in Parameter Names?

Déclarations préparées par PDO : qu'indiquent les deux points dans les noms de paramètres ?

Introduction

Quand En utilisant PDO avec des paramètres nommés, certains développeurs incluent des deux-points (:) avant les noms des paramètres tandis que d'autres les omettent complètement. Bien que les deux approches semblent fonctionner, la signification de ces deux-points a été un sujet de curiosité.

Exigence syntaxique

Dans les chaînes SQL, les espaces réservés nommés doivent avoir un deux points comme indiqué dans la documentation PHP. En effet, cela facilite l'identification sans ambiguïté des paramètres.

$insertRecord = $conn->prepare('INSERT INTO Table1 (column1, column2)
    VALUES(:column1, :column2)');
//         ^         ^  note the colons

Côlons facultatifs dans la liaison et l'exécution

Contrairement à la chaîne SQL, les deux-points sont facultatifs dans PDOStatement : bindParam() et PDOStatement::execute(). Voici un exemple de liaison et d'exécution d'une instruction avec et sans deux-points :

$insertRecord->execute(array(
    ':column1' => $column1,
    ':column2' => $column2
));

// or

$insertRecord->execute(array(
    'column1' => $column1,
    'column2' => $column2
));

Pourquoi ça marche

En examinant le code source PHP, on découvre que l'interpréteur n'attend qu'un seul deux-points dans un espace réservé. Ainsi, :name est valide, tandis que name et ::name ne sont pas valides.

Cela permet à l'interpréteur de supposer qu'un paramètre nommé name dans bindParam() ou execute() devrait en réalité être :name. Le fichier pdo_stmt.c illustre ce comportement. Par conséquent, PHP ajoute automatiquement les deux points aux noms de paramètres qui en sont dépourvus.

Bonnes pratiques

Techniquement, les deux approches fonctionnent. Cependant, pour des raisons de cohérence, de lisibilité et de facilité de recherche dans les IDE, il est conseillé d'utiliser les deux points. Cette approche élimine toute ambiguïté et s'aligne sur les meilleures pratiques acceptées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn