Les instructions préparées sont un outil essentiel pour améliorer la sécurité et les performances des bases de données. Cependant, il est important de noter que CodeIgniter ne prend pas en charge nativement les instructions préparées. Malgré cela, nous pouvons utiliser des liaisons de requêtes, une approche similaire qui offre des avantages substantiels.
CodeIgniter adopte les liaisons de requêtes sans nom, où les points d'interrogation (?) agissent comme espaces réservés dans les requêtes SQL. Ces espaces réservés sont automatiquement remplacés par des valeurs spécifiées dans un tableau transmis à la fonction de requête.
Par exemple :
$sql = "SELECT * FROM tbl_user WHERE uid = ? AND activation_key = ?"; $this->db->query($sql, array($uid, $activation_key));
Bien que CodeIgniter manque d'éléments explicites prise en charge des liaisons nommées (par exemple, :id et :key), le remplacement des points d'interrogation par des espaces réservés nommés n'indique pas l'utilisation d'instructions préparées. Les liaisons nommées fournissent simplement une alternative de syntaxe différente dans les liaisons de requête.
Il est crucial de comprendre que l'utilisation de ? ou :foo ne signifie pas la préparation de déclarations. Les instructions préparées nécessitent deux appels de fonction distincts : préparer() et exécuter(), qui ne sont pas pris en charge dans CodeIgniter.
Malgré l'absence d'instructions préparées, les liaisons de requêtes offrent plusieurs avantages :
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!