pifou25
Messages postés144Date d'inscriptionlundi 13 octobre 2003StatutMembreDernière intervention21 décembre 2014 21 déc. 2014 à 22:29
Bonjour,
pourquoi avoir utilisé des classes abstraites plutot qu'une interface ? en tout cas c'est une excellente idée et je tente de l'appliquer pour pouvoir utiliser indiféremment mysql, mysqli ou pdo.
Gaelcediene
Messages postés3Date d'inscriptionmardi 10 mai 2005StatutMembreDernière intervention 7 février 2007 7 févr. 2007 à 17:00
Vraiment bien ton code. Je l'ai simplifié légèrement puis j'ai créé une classe pour postgresql. Et avec un peu de bidouillage, tout marche impeccablement bien.
Juste une chose : ne pas oublier que pour postgresql, il faut mettre l'hôte, le port, et la base de données dans la string pour se connecter. Donc on met juste un protected function private_selectdb() {
return TRUE;
}
Sinon, c'est le seul petit tru qui risquait de poser problème.
cs_tataye
Messages postés21Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention30 juin 2009 20 août 2006 à 18:31
Bonjour,
Y-a-t'il une erreur dans les sources ?
Quelle que soit la méthode utilisée pour faire une requête, j'ai systématiquement comme erreur Fatal error: Call to undefined method mysql::fetchrow() ...
Amistrad
Messages postés9Date d'inscriptionsamedi 3 juin 2006StatutMembreDernière intervention14 juin 2006 14 juin 2006 à 10:05
Salut,
En fait il y a quand meme quelque chose.
J'ai des difficultés avec la class dbInterface, je comprend pas bien son fonctionnement, et lorsque j'essaye d'instancier la class mysql il me dit : "
Fatal error: Cannot redeclare class dbinterface in C:\wamp\www\Class\db\b2database.php on line 2"
Si quelqu'un sait pourquoi, en attendant j'essaie de me connecter a mysql
merci
PS: je peux pas supprimer les deux messages précédents qui ne servent a rien... :)
Amistrad
Messages postés9Date d'inscriptionsamedi 3 juin 2006StatutMembreDernière intervention14 juin 2006 13 juin 2006 à 14:43
bon bah il semblerait que j'ai poser une question avant de chercher.. sorry elle est bien la.
Amistrad
Messages postés9Date d'inscriptionsamedi 3 juin 2006StatutMembreDernière intervention14 juin 2006 13 juin 2006 à 14:40
Bonjour, je suis tout neuf dans le php et y'a un truc que je comprend pas dans ta "class mysql extends database" Fhx.
Quelle est la class database?? dans ton script l'autre class est dbInterface...
Alors je ne sais pas trop si les questions se font sur les commentaire ou sur le forum mais bon vous m'en voudrez pas. :p
merci
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 16 janv. 2006 à 18:42
Je rajoute aussi :
L'instanciation sans la connection à la base de donnée en automatique n'est que de 150µs sur mon ordi de merde. (un vieux Athlon 1400+ avec 512Mo SDRAM 133MHz)
Alors si quelqu'un peut me tester ca sur un serveur en condition réel je veux bien les chiffres :)
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 16 janv. 2006 à 18:36
Updaté, mon bench à l'instanciation passe de 16ms à 5 voir 6ms sur mon ordi.
Et voila, maintenant je suis content :)
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 14 janv. 2006 à 17:50
Ca a l'air plutot sympa tout ça... je ne peux me pencher dessus pour l'instant car je n'ais plus le net chez moi mais dès que c'est revenu j'y jetterais un coup d'oeil... .. . :o)
@ tchaOo°
ps : et je ne t'ais pô oublié FhX dès que je récupère ma connection au net je t'envois la class de xoops... .. . ;o)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 11 janv. 2006 à 07:41
Les bench étant très importants quand on travaille sur une base complexe, je pense qu'il serait intéressant d'avoir une méthode interne à cette classe qui puisse "bencher" telle ou telle requête. Perso, je m'en sers régulièrement pour optimiser des requêtes qui me paraissent un peu longues.
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 10 janv. 2006 à 20:06
Salut :-)
10/10 c'est propre :-)
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 10 janv. 2006 à 18:27
Voui, le seul moyen de faire ca pour le moment est de surcharger la méthode de query().
Ou alors, tu bench la méthode entièrement depuis l'extérieur :
21 déc. 2014 à 22:29
pourquoi avoir utilisé des classes abstraites plutot qu'une interface ? en tout cas c'est une excellente idée et je tente de l'appliquer pour pouvoir utiliser indiféremment mysql, mysqli ou pdo.
7 févr. 2007 à 17:00
Juste une chose : ne pas oublier que pour postgresql, il faut mettre l'hôte, le port, et la base de données dans la string pour se connecter. Donc on met juste un protected function private_selectdb() {
return TRUE;
}
Sinon, c'est le seul petit tru qui risquait de poser problème.
20 août 2006 à 18:31
Y-a-t'il une erreur dans les sources ?
Quelle que soit la méthode utilisée pour faire une requête, j'ai systématiquement comme erreur Fatal error: Call to undefined method mysql::fetchrow() ...
14 juin 2006 à 10:05
En fait il y a quand meme quelque chose.
J'ai des difficultés avec la class dbInterface, je comprend pas bien son fonctionnement, et lorsque j'essaye d'instancier la class mysql il me dit : "
Fatal error: Cannot redeclare class dbinterface in C:\wamp\www\Class\db\b2database.php on line 2"
Si quelqu'un sait pourquoi, en attendant j'essaie de me connecter a mysql
merci
PS: je peux pas supprimer les deux messages précédents qui ne servent a rien... :)
13 juin 2006 à 14:43
13 juin 2006 à 14:40
Quelle est la class database?? dans ton script l'autre class est dbInterface...
Alors je ne sais pas trop si les questions se font sur les commentaire ou sur le forum mais bon vous m'en voudrez pas. :p
merci
16 janv. 2006 à 18:42
L'instanciation sans la connection à la base de donnée en automatique n'est que de 150µs sur mon ordi de merde. (un vieux Athlon 1400+ avec 512Mo SDRAM 133MHz)
Alors si quelqu'un peut me tester ca sur un serveur en condition réel je veux bien les chiffres :)
16 janv. 2006 à 18:36
Et voila, maintenant je suis content :)
14 janv. 2006 à 17:50
@ tchaOo°
ps : et je ne t'ais pô oublié FhX dès que je récupère ma connection au net je t'envois la class de xoops... .. . ;o)
11 janv. 2006 à 07:41
10 janv. 2006 à 20:06
10/10 c'est propre :-)
10 janv. 2006 à 18:27
Ou alors, tu bench la méthode entièrement depuis l'extérieur :
$start = microtime(true);
$db->query();
$end = microtime(true);
$time_elapsed = $end - $start;
A quelques microsecondes on y est presque ! Mais je peux toujours arranger ca dans la classe elle-même aussi !
10 janv. 2006 à 18:06
ce qui serait interessant, c'est de faire un bench en même temps :)
Je te laisse t'en occuper :)
je penses à un truc genre
$a->setmodebench('on');
$a->benchreset();
$a->req();
...
echo 'temps de requette sql : ', $a->bench_val();
parceque là, on pourrait faire ça bien plus facilement avec ton code que sans...
10 janv. 2006 à 10:11
10 janv. 2006 à 09:28