Maison  >  Article  >  développement back-end  >  Que signifie le prétraitement php ?

Que signifie le prétraitement php ?

(*-*)浩
(*-*)浩original
2019-10-15 14:04:164023parcourir

De nombreuses bases de données plus matures prennent en charge le concept d'instructions préparées. Que sont les déclarations préparées ? Considérez-le comme un modèle compilé du SQL que vous souhaitez exécuter, qui peut être personnalisé à l'aide de paramètres variables.

Que signifie le prétraitement php ?

Les relevés préparés peuvent apporter deux avantages majeurs :

Interrogez-le uniquement doit être analysé (ou prétraité) une fois, mais peut être exécuté plusieurs fois avec des paramètres identiques ou différents. Lorsqu'une requête est prête, la base de données analysera, compilera et optimisera le plan d'exécution de la requête. (Apprentissage recommandé : Tutoriel vidéo PHP)

Pour les requêtes complexes, ce processus prendra beaucoup de temps. Si la même requête doit être répétée plusieurs fois avec des paramètres différents, le processus le fera. Ralentit considérablement l'application. En utilisant des instructions préparées, vous pouvez éviter les cycles répétés d’analyse/compilation/optimisation. En termes simples, les instructions préparées utilisent moins de ressources et s'exécutent donc plus rapidement.

Les paramètres fournis aux relevés préparés n'ont pas besoin d'être mis entre guillemets, le conducteur les gérera automatiquement. Si votre application utilise uniquement des instructions préparées, vous pouvez vous assurer qu'aucune injection SQL ne se produit. (Cependant, si d'autres parties de la requête sont construites à partir d'entrées non échappées, il existe toujours un risque d'injection SQL).

Les instructions préparées sont si utiles que leur seule fonctionnalité est que PDO simule le traitement lorsque le pilote ne le prend pas en charge. Cela garantit que les applications peuvent utiliser le même modèle d'accès aux données, que la base de données dispose ou non de telles fonctionnalités.

Utilisez des instructions préparées pour obtenir des données

L'exemple suivant obtient des données en fonction de la forme de valeur clé fournie. Les entrées de l'utilisateur sont automatiquement citées, il n'y a donc aucun risque d'attaques par injection SQL.

<?php
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
if ($stmt->execute(array($_GET[&#39;name&#39;]))) {
  while ($row = $stmt->fetch()) {
    print_r($row);
  }
}
?>

Si le pilote de base de données le prend en charge, l'application peut également lier les paramètres de sortie et d'entrée. Les paramètres de sortie sont généralement utilisés pour obtenir des valeurs à partir de procédures stockées. Les paramètres de sortie sont légèrement plus compliqués à utiliser que les paramètres d'entrée car lors de la liaison d'un paramètre de sortie, vous devez connaître la longueur du paramètre donné. Si la valeur liée à un paramètre est supérieure à la longueur recommandée, une erreur est générée.

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