c'est une requête qui s'écrit de la façon suivante :
select * from familles where nom = :nom
et ensuite, avant l'exécution de la commande, tu vas indiquer grace à une fonction spécial quel est le type et la valeur de :nom
ceci à plusieurs avantages :
- plus de ' dans ton code, ou de problèmes de cast
- plus de risque d'injection de code avec un entier qui récupère par exemple la valeur suivant : "0;delete familles;--"
- le moteur du sgbd exécute toujours la même requête (c'est la requête avec :nom qui est exécutée, pas celle avec la valeur de :nom. il faut savoir que l'optimiseur sql conserve en cache le plan d'exécution des requêtes un certain temps. si on lui demande plusieurs fois la même requête (cela se joue au caractère près) alors il n'a pas besoin de recalculer le plan. pour de toutes petites requêtes de ce genre, c'est le plan est le plus long à établir pendant l'exécution, il est donc intéressant de ne pas avoir à le recalculer à chaque fois.
pour la suite, n'oublie pas aussi deux choses :
- banis de tes requête les select * : tu va rammener inutilement un certain nombre de champs dont tu n'as pas besoin, et ainsi réduire inutilement les performances. deplus, si l'odre des champs change, ou si tu ajoutes/supprimer des champs, tu risque de te heurter à des problèmes lors de la lecture du résultat, sans pour autant penser forcément que c'est la requête qui pose problème
- lors d'un INSERT, met systématiquement la liste des champs que tu insère, pour la même raison