par
Ripat » 05 févr. 2009, 20:40
'soir,
Les requêtes en boucles peuvent être désastreuses en termes de performance. Depuis MySQL 4.1, il est possible d'utiliser les "prepare statement". En gros, on envoie une seule fois au serveur MySQL la requête à traiter, MySQL va la parser une seule fois, la compiler et attendre les variables filles. Si tu n'as pas envie de t'embêter avec la syntaxe particulière des prepare statements (PREPARE, EXECUTE et DEALLOCATE PREPARE), regarde du côté de la classe d'abstraction PDO de PHP5. Très simple à utiliser. Sinon, la classe MySQLi le fait aussi.
Si tes tables utilisent le moteur innoDB, tu as aussi intérêt à utiliser les transactions (BEGIN, COMMIT) parfaitement et facilement gérées par PDO.
Enfin, et surtout, il est un peu téméraire de faire des update de tables en partant de données utilisateurs récupérées de formulaires sans protéger les valeurs contre les injections SQL. Ici encore, l'utilisation de la méthode PDO::prepare t'apporte une solution très simple à mettre en oeuvre (il n'y a strictement rien à faire!).
'soir,
Les requêtes en boucles peuvent être désastreuses en termes de performance. Depuis MySQL 4.1, il est possible d'utiliser les "prepare statement". En gros, on envoie une seule fois au serveur MySQL la requête à traiter, MySQL va la parser une seule fois, la compiler et attendre les variables filles. Si tu n'as pas envie de t'embêter avec la syntaxe particulière des [i]prepare statements[/i] ([i]PREPARE, EXECUTE[/i] et [i]DEALLOCATE PREPARE[/i]), regarde du côté de la classe d'abstraction PDO de PHP5. Très simple à utiliser. Sinon, la classe MySQLi le fait aussi.
Si tes tables utilisent le moteur innoDB, tu as aussi intérêt à utiliser les transactions ([i]BEGIN, COMMIT[/i]) parfaitement et facilement gérées par PDO.
Enfin, et surtout, il est un peu téméraire de faire des update de tables en partant de données utilisateurs récupérées de formulaires sans protéger les valeurs contre les injections SQL. Ici encore, l'utilisation de la méthode [i]PDO::prepare[/i] t'apporte une solution très simple à mettre en oeuvre (il n'y a strictement rien à faire!).