Substitution de paramètres dans MySQL
Dans votre code, le point d'interrogation (?) dans la clause WHERE joue un rôle central dans l'utilisation des instructions préparées . Les instructions préparées offrent une approche améliorée de la liaison des paramètres dans MySQL, offrant de nombreux avantages.
Qu'est-ce qu'une instruction préparée ?
Une instruction préparée est une instruction SQL précompilée qui accepte les paramètres séparément de la requête elle-même. Cela permet à la base de données d'analyser et d'optimiser la requête une seule fois, atténuant ainsi le besoin de traitement répétitif à chaque exécution de requête. Par la suite, cette optimisation conduit à des améliorations de performances.
Avantages en matière de sécurité
Les instructions préparées sont largement reconnues pour renforcer la sécurité contre les injections SQL. En séparant les paramètres de requête de l'instruction elle-même, les instructions préparées empêchent efficacement les tentatives malveillantes d'injecter du code nuisible dans la base de données via une entrée.
Exemple d'illustration
Dans votre code spécifique, l'instruction préparée est utilisée comme suit :
$sql = 'SELECT page.*, author.name AS author, updator.name AS updator ' . 'FROM '.TABLE_PREFIX.'page AS page ' . 'LEFT JOIN '.TABLE_PREFIX.'user AS author ON author.id = page.created_by_id ' . 'LEFT JOIN '.TABLE_PREFIX.'user AS updator ON updator.id = page.updated_by_id ' . 'WHERE slug = ? AND parent_id = ? AND (status_id='.Page::STATUS_REVIEWED.' OR status_id='.Page::STATUS_PUBLISHED.' OR status_id='.Page::STATUS_HIDDEN.')';
Dans ce code, les points d'interrogation (?) servent d'espaces réservés pour les paramètres qui seront liés à l'instruction. Lors de l'exécution de cette instruction, le moteur de base de données remplacera les points d'interrogation par les valeurs réelles fournies en entrée.
Avantages des instructions préparées
En résumé, les instructions préparées dans MySQL offrent les avantages suivants :
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!