21-08-2008, 04:57 PM
zzarbi a écrit :Mais c'est un design pattern, si dans le cas d'une BDD en PHP c'est pas utile ça pourrait être utile pour d'autres problèmes.C'est-à-dire ?
Zamentur > on n'est pas obligé de faire une classe pour ça. Suffit de définir ses propres fonctions et éventuellement faire un str_replace/preg_replace dans les scripts déjà existants.
Par exemple mon fichier mysql.php en procédural possède les fonctions suivantes :
- msql : requête simple qui incrémente le compteur de requêtes et qui retourne la même chose que mysql_query, en arrêtant immédiatement le script avec un message d'erreur si la requête a planté.
msqlRow : La précédente en combinaison avec un unique mysql_fetch_assoc. Raccourci stupide mais pratique.
msqlRows : Une requête de base mais qui renvoie un tableau de tableau. Raccourci encore une fois relativement idiot mais pratique.
msqlVal : Une requête pour récupérer une valeur unique, par exemple select count(*) from table. Comment dire ? Un racourci qui n'est pas inintéressant non plus.
msqlRowCount : Appelle msql et effectue une requête simple, et renvoie pas de résultat mais le mysql_num_rows. Parfois, c'est pratique... par exemple pour vérifier si un membre n'existe pas déjà avec le même pseudo quand on s'inscrit.
msqlEscape : parce que mysql_real_escape_string c'est vraiment trop long à taper.
array2sqlInsert : Transforme un tableau associatif ou un tableau de tableau associatifs en requête de type insert
array2sqlUpdate : Transforme un tableau associatif en requête de type update
getReqCount : une fonction à la place d'utiliser directement la variable globale, parce que c'est plus propre
getReqTime : Idem
Ce qui fait que je peux avoir ce genre d'appel :
[code]
$userInfo = msqlRow("select * from users where id = {$_SESSION['userId']}", __FILE__,__LINE__);
[/quote]
Je passe en plus le nom de fichier et le numéro de ligne, pour débugger facilement au cas où la requête plante. J'aimerais bien pouvoir les faire passer automatiquement, ça serait pratique mais je n'ai pas encore trouvé comment faire si toutefois c'était possible. Si par hasard quelqu'un a la petite astuce...
html, javascript, blagues, midi, etc. => http://quentinc.net/