Question

Qu'est-ce qu'une requête paramétrées, et ce serait un exemple d'une telle requête en PHP et MySQL?

Était-ce utile?

La solution

Une paramétrés requête (également connu sous le nom instruction préparée ) est un moyen de pré-compilation d'une instruction SQL afin que tout ce que vous devez fournir sont les « paramètres » (pensez à « variables ») qui nécessité d'insérer dans la déclaration pour qu'elle soit exécutée. Il est couramment utilisé comme un moyen de prévenir attaques par injection SQL .

Vous pouvez en savoir plus sur ces derniers sur PHP AOP la page (AOP étant une couche d'abstraction de base de données), mais vous pouvez aussi les utiliser si vous utilisez l'interface de base de données mysqli (voir préparer documentation).

Autres conseils

Ceci est une explication claire et succincte de ce qu'il est, et comment il fonctionne. Comment et pourquoi utiliser Paramétrisation

Essential le processus implique le serveur prétraiter la demande sans paramètres il connaît le type de requête est. Ainsi, par exemple une requête SELECT est uniquement une requête SELECT et ne peut pas être concaténé par un paramètre (variable demande) être un SELECT / DROP ou une autre injection de MySql. Au lieu de cela les données d'injection seront seulement les données de chaîne dans le champ de paramètre.

Une requête est une requête paramétrée dans lequel on utilise des espaces réservés pour les paramètres et les valeurs de paramètres sont fournis au moment de l'exécution.

Pourquoi utiliser la requête paramétrées

  1. La raison la plus importante d'utiliser des requêtes paramétrées est d'éviter des attaques par injection SQL.
  2. requête En second lieu paramétrés prend soin de scénario où la requête SQL peut échouer pour exemple l'insertion de O'Baily dans un champ. Handels de requête paramétrées comme la requête sans vous forcer à remplacer des guillemets simples avec doubles guillemets simples.

Cette déclaration est l'une des caractéristiques du système de base de données dans laquelle même instruction SQL exécute de façon répétée avec une grande efficacité. Les déclarations préparées sont une sorte de modèle et utilisé par l'application avec des paramètres différents. article Référence

Base de données du système peut exécuter la même instruction SQL sans faire l'analyse, la compilation et l'optimisation encore et encore pour le même genre de déclaration SQL.

Vous pouvez écrire ou créer déclaration préparée dans MySQL, mais ce n'est pas un moyen efficace parce que le protocole binaire via une API d'instruction préparée est mieux.

Mais vous pouvez toujours écrire et même cela ne nécessite aucune autre programmation que vous pouvez écrire directement dans SQL. Vous pouvez utiliser une instruction préparée pour MySQL client program.You pouvez également utiliser une instruction préparée dans une procédure stockée pour l'approche SQL dynamique.

Créer déclaration préparée dans MySQL: référence est prise de cet article

PREPARE TestStmt FROM 
'SELECT * FROM Test 
WHERE TestNumber=?';

Vous pouvez utiliser le code PHP pour gérer la déclaration préparée par son API ou gérer au niveau de JDBC.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top