Je viens de trouver la fonction responsable des plantages SYSTEMATIQUES de APACHE avec la 2.0i , à chaque fois que j'utilise mysql_close ça plante ! et il semble que je ne sois pas le seul.
j'ai récemment emmené mon travail sur mon portable à partir d'une ancienne version de wamp qui elle fonctionne très bien, et là plantage sur plantage ! bref j'ai fini par supprimer tout le code php dans mon éditeur puis par réintégrer tout au fur et à mesure en testant à chaque étape, et il s'agit bien de mysql_close.
d'où viens ce bug ?
Merci d'avance.
Modifie 2 fois. Derniere modification le 27/07/2009 à 01:06 par brian85.
Il est possible voire probable qu'il y ait un problème de compilation de la dll mysql, car étant doné que la dll fonctionne (on peut la charger), que mysql_connect ou autre fonctionne (on peut l'utiliser), je ne vois pas d'autre explication...
toumimi a écrit: ------------------------------------------------------- > Effectivement, il y a un bug dans la liste de php > : [bugs.php.net] > > Apparemment, il suffirait de préciser la variable > de connexion dans la fonction > <?php > $conn = mysql_connect('ip','user','password'); > mysql_close($conn); > ?> >
Merci de la réponse, ayant moi aussi mis à jour et apache plante. Cependant, où faut'il mettre cette variable ? car je ne vois pas où. Cela sera bien une explication plus complète pour les néophytes . :-)
ccluz, Au lieu d'appeler mysql_close(), il faut appeler mysql_close($conn). $conn étant le handle récupéré lors de l'appel à mysql_connect().
L'info habituelle : si tu es en train de coder une nouvelle application, laisses tomber les fonctions mysql_* et utilises PDO : c'est l'avenir et ça te facilitera la vie.
Tu as essayé de faire une page qui contient juste la connexion à ta BDD ? Et si ça marche, tu ajoutes une requête simple en affichant le résultat, pour être sûr que ça vient bien de PDO et pas d'autre chose de ton site.
Si ce code plante, postes-le ici pour qu'on puisse essayer.
Tu utilises PDO avec MySQL ou un autre sgbdr (postgresql) ?
J'ai utilisé PDO pour MySQL sur PHP 5.2.x, 5.3.0, 5.3.1 et 5.3.2 et je n'ai rencontré aucun plantage. À partir de PHP5.3.x, il faut faire une bidouille parce qu'il y a un bug pour la gestion de l'UTF-8, mais c'est tout.
J'ai déjà trouvé dans un autre message d'ici : en PHP 5.3, il y aurait un bug sur le mysql_close qui aurait besoin forcément d'un paramètre (code de retour de la fonction d'ouverture), sinon abort mysql_php.dll dans Apache.
Essaie de modifier tous les mysql_close() en mysql_close($retourOpen) et ça devrait fonctionner, ça l'a fait pour moi !
J'ai déjà trouvé dans un autre message d'ici : en PHP 5.3, il y aurait un bug sur le mysql_close
A vrai dire, c'est de ce topic que tout est parti, et ensuite, j'ai répondu dans les autres
Si Aurelie fonctionne avec pdo, il n'y a pas de fonction mysql_close. Cela n'empêche pas non plus un bug avec pdo_mysql. Il faudrait trouver la source du problème et savoir si c'est reproductible.
Parfois il y a un message d'erreur avec le plantage d'apache, qui dit par exemple module httpd.exe mysql.dll ou je ne sais plus quoi, mais des infos qui peuvent s'avérer utiles...