[PHP 5] CLASSE SQL

cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 - 9 août 2005 à 17:14
starrr Messages postés 2 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 5 avril 2007 - 8 nov. 2007 à 17:24
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/33135-php-5-classe-sql

starrr Messages postés 2 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 5 avril 2007
8 nov. 2007 à 17:24
Félicitation pour ce code.
cependant j'ai un pti soucis, les requetes simple fonctionne,
mais lorsque je veux imbriquer une autre requete dans un while ça ne passe pas.
du style :
j'ai une page avec une liste de personne qui possède 4 photos chacune

je liste dabor les personnes puis normalement je dois faire un second while dedans, mais ça bloke.
est ce normal?
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
30 avril 2007 à 22:33
Moi je veux !!! Je recode tout mon jeu php... Non pas que la premiere version soit nulle mais le code n'est pas assez propre a mon gout donc je refais tout avec ta classe :)
Merci FhX >.<
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
3 janv. 2006 à 17:50
Voila j'ai mis un zip !
Y'a tout dedand, sauf un exemple ! ;)

Ceux qui veulent essayer, qu'ils s'amusent alors !
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
3 janv. 2006 à 17:37
Heu, je serais toi, je mettrais un zip, maintenant...il devient long ce code lol ;-)

Vais tester ça, mais les noms me plaisent bien ;-)
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
3 janv. 2006 à 17:32
Voila j'en ai rajouté des options Malalam... comme ca, ma vieille option d'avant ne sera plus seule desormais ;)
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
9 déc. 2005 à 16:32
Re-Update !

Rah et ce colorisateur syntaxique alors ... !

Bon, j'ai encore quelques optimisations à faire, mais dans l'ensemble ca me parait pas trop mauvais.
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
9 déc. 2005 à 14:44
et c'est lourd là, parce que tu n'as qu'une seule option...mais il en viendra sûrement d'autres.
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
9 déc. 2005 à 14:40
Pourquoi pas... ouais, ça laisse le choix et par défaut, c'est réalisé. Je suis ok avec ça ;-)
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
9 déc. 2005 à 14:04
A la limite, jpeux y mettre une condition dessus !

class mysql {

public $_option array('ESCAPE_STRING'> TRUE);


public function query($sql) {

$this->query = ( $this->_option['ESCAPE_STRING'] ) ? @mysql_query( mysql_real_escape_string($sql), $this->_config['link']) : @mysql_query( $sql, $this->_config['link'];

}
}

Mieux ? Ou ca fait trop lourd ?
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
9 déc. 2005 à 13:50
Oui, d'autant plus que mysql_real_escape_string () a besoin d'une connexion au serveur de bdd pour fonctionner. Donc pourquoi pas. Et ça ne peut pas faire de mal!
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
9 déc. 2005 à 13:30
Non, ca je ne l'inclurait pas. C'est une fonction qui reste hors classe ca. A la limite, je peux faire :

"# $this->query @mysql_query( $sql, $this->_config['link'] );"
>
$this->query = @mysql_query( mysql_real_escape_string($sql), $this->_config['link'] );

Ce qui sera fait automatiquement ! Vu que j'en ai besoin que lors des queries !
Oui ? Non ?
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
8 déc. 2005 à 17:59
Tien, une suggestion :

// Fonction échappant les caractères dangereux.
public function escape ($txt) {
return mysql_real_escape_string($txt);
}
//-----------------------------
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
8 déc. 2005 à 11:22
Ah ben c'est joli là :-)
Allez hop, je récupère ;-)
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
1 déc. 2005 à 22:13
Jpeux le faire pour postgreSQL par contre... suffit de faire une classe qui hérite de la classe abstraite et reprendre les méthodes une à une.

Jferais ca demain tiens !
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
1 déc. 2005 à 22:12
Bah, mysqli possède déja sa propre interface objet avec PHP5.

Suffit de faire :
$x = new mysqli(host, login, password, nom_de_la_base);

et ca marche tout seul :)
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
1 déc. 2005 à 21:19
Bah c'est bien... je suis le seul par contre à recevoir l'email ;)
Ton code s'est amélioré, c'est bien !
Et mysqli maintenant ?
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
1 déc. 2005 à 13:53
J'ai dû taper trop haut niveau source... y'a plus personne qui répond maintenant ;)
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
30 nov. 2005 à 21:20
Et zoup :)
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
29 août 2005 à 22:03
C'est update .. J'ai encore des problèmes pour la gestion d'erreur via mail().
Si quelqu'un a une idée, je prend !
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
9 août 2005 à 18:13
Je sais bien, mais j'utilise cette classe avec un template pour la gestion d'erreur. J'ai du la remanier un peu pour enlever tout ce qui touchais aux templates.

Voila pourquoi j'ai mis du et du die(). Mais je vais changer un peu ca...
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
9 août 2005 à 17:14
Ce n'est pas la mienne...
http://www.phpcs.com/code.aspx?ID=24813
Personnellement, je n'aime pas voir des span ou die dans une classe comme ca... tu coupes toutes les fonctionnalités du site si tu fais ca... Perso j'aurais mis du try catch (que l'utilisateur doit attraper au cas où... ou simplement pas de die et des retours d'erreur).
Rejoignez-nous