Maison  >  Article  >  cadre php  >  Y a-t-il un prétraitement dans thinkphp ?

Y a-t-il un prétraitement dans thinkphp ?

WBOY
WBOYoriginal
2022-04-07 16:17:272050parcourir

Il existe un prétraitement dans thinkphp. La version "ThinkPHP3.1" ajoute la prise en charge du prétraitement des chaînes conditionnelles, rendant ainsi la sécurité ORM plus sécurisée. Méthodes : 1. Utilisez la méthode Where pour prétraiter les conditions de chaîne ; 2. Utilisez les méthodes de requête et d'exécution pour prétraiter les méthodes de requête SQL natives.

Y a-t-il un prétraitement dans thinkphp ?

L'environnement d'exploitation de cet article : système Windows 10, ThinkPHP version 5, ordinateur Dell G3.

Y a-t-il un prétraitement dans thinkphp ?

Y a-t-il un prétraitement dans thinkphp ?

La version précédente de ThinkPHP 3.0 effectuera un filtrage de sécurité sur les conditions de requête de tableau (cela est dû à l'utilisation obligatoire de la détection de type de champ dans la version 3.0). , donc les conditions de requête en mode tableau seront forcées d'être converties en type de paramètre du champ), mais la version 3.0 ne prend pas en charge le filtrage sécurisé des conditions de chaîne. La version ThinkPHP 3.1 ajoute la prise en charge du prétraitement des chaînes conditionnelles, ce qui rend la sécurité d'ORM plus garantie.

1. Utilisez la méthode Where

La méthode Where de la classe Model prend en charge le prétraitement des conditions de chaîne. Utilisez :

$Model->where("id=%d and username='%s' and
xx='%f'",array($id,$username,$xx))->select();

ou utilisez-la directement :

$Model->where("id=%d and username='%s' and xx='%f'",$id,$username,$xx)->select();

Si la variable $id provient de la soumission de l'utilisateur ou de l'adresse URL, si transmis Si l'entrée est de type non numérique, elle sera formatée de force dans un format numérique avant l'interrogation.

Le type de format de prétraitement de chaîne prend en charge la spécification de nombres, de chaînes, etc. Pour plus de détails, veuillez vous référer à la description des paramètres de la méthode vsprintf.

2. Utilisez les méthodes de requête et d'exécution

En plus des conditions Where, la méthode de requête SQL native prend également en charge les mécanismes de prétraitement :

$Model->query("SELECT * FROM think_user WHERE id=%d and username='%s' and xx='%f'",array($id,$username,$xx));

La méthode d'exécution du modèle prend également en charge le mécanisme de prétraitement comme la requête. méthode.

Y a-t-il un prétraitement dans thinkphp ?

Apprentissage recommandé : "Tutoriel vidéo PHP"

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