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 : 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!