Utiliser les requêtes préparées par PHP pour Postgres
C'est une question semblable à ce "Quand ne pas utiliser les requêtes Préparées?", mais avec le "comment faire" -partie et pour PostgreSQL.
Je sais que j'ai besoin de déclarations préparées à l'avance parce que j'en fais plus d'un appel à ma base de données pendant un script.
J'aimerais avoir des exemples concrets sur la phrase suivante
Regarder typecasting, de la validation et de la désinfection des variables et l'utilisation de PDO avec les requêtes préparées.
Je sais ce qu'il veux dire par la validation et de la désinfection des variables. Cependant, je ne suis pas complètement sûr de déclarations préparées à l'avance. Comment pouvons-nous préparer les états de compte? Par les filtres, c'est par la désinfection? Ou par certains AOP couche? Quelle est la définition de la couche?
Ce n'préparé énoncés dans la déclaration? S'il vous plaît, utiliser des exemples concrets.
OriginalL'auteur Léo Léopold Hertz 준영 | 2009-08-07
Vous devez vous connecter pour publier un commentaire.
De la la documentation:
Cette fonction permet de commandes qui seront utilisées à plusieurs reprises pour être analysé et prévu juste une fois, plutôt que chaque fois qu'ils sont exécutés.
Voir pg_prepare
Exemple à partir de la page liée ci-dessus:
La Documentation de MySQL pour les Instructions Préparées bien des réponses aux questions suivantes:
déclarations?
les exemples que j'ai fournis sont de la pg_prepare page de doc. Ils sont plus faciles à suivre, mais je dirais @Verre du Robot exemples sont plus du monde réel (par exemple, nommé marqueurs). Je suggère que vous obtenez vos mains sales ASAP. Il n'y a pas un exemple pour les gouverner tous".
Votre réponse n'utilise pas PDO. Cela me suggère que vous pouvez utiliser les requêtes préparées sans AOP. AOP semble offrir de la base de données de l'indépendance.
Il semble que
pg_query = pg_prepare + pg_pg_execution - ability_to_run_a_list_vars_to_a_statement
.S'il vous plaît, voir ma réponse à votre réponse ci-dessus ou dans le stackoverflow.com/questions/1247373/...
OriginalL'auteur karim79
Cela signifie qu'il va vous aider à prévenir les attaques par injection SQL en éliminant le besoin d'manuellement citer les paramètres.
Au lieu de placer une variable dans le sql vous utilisez un nom ou un point d'interrogation marqueur pour quelles valeurs réelles seront remplacées lorsque l'instruction est exécutée.
Définition de AOP du manuel PHP:
"Le PHP Data Objects (PDO) extension définit un poids léger, interface cohérente pour l'accès aux bases de données en PHP.'
Voir le manuel php sur AOP et PDO::prepare.
Un exemple d'une requête préparée avec nommée marqueurs:
Un exemple d'une requête préparée avec un point d'interrogation marqueurs:
OriginalL'auteur Glass Robot
Comment pouvons-nous préparer les états financiers:
Vous définissez une requête qu'une seule fois, et pouvez l'appeler aussi souvent que vous le souhaitez avec des valeurs différentes. (eg. dans une boucle)
voir: http://us2.php.net/manual/en/function.pg-execute.php
OriginalL'auteur Rufinus
Répondre à Karim79 la réponse de
Ce
semble être le même que celui de la
Conclusion: l'utilisation de
pg_prepare
etpg_execute
rend PHP beaucoup plus efficace, puisque vous n'avez pas besoin d'envisager de désinfection. Il vous aide également dans l'utilisation de l'AOP.OriginalL'auteur Léo Léopold Hertz 준영