IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Souci de connexion


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 28
    Points : 16
    Points
    16
    Par défaut Souci de connexion
    Coucou,

    Alors voilà, j'ai un souci de connexion avec mon site internet. Pour ma part, j'arrive à me connecter et voir les pages, mais de temps en temps j'ai ce message d'erreur :
    Warning: mysql_pconnect() [function.mysql-pconnect]: MySQL server has gone away in E:\kunden\homepages\11\d507374599\www\connexion.php on line 7
    Et je n'ai rien trouvé pour le résoudre. De plus, quand je donne le login et mot de passe à des amis pour qu'ils aillent voir le site, ils me disent qu'ils ne peuvent pas se connecter alors que chez moi ça fonctionne même s'il y a ce message d'erreur.


    Voici ce que contient mon fichier connexion.php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    define('serveur','NomDeLaBase.db.1and1.com');
    define('nom','NomDeLaBase');
    define('passe','MotDePasse');
    define('base','NomDeLaBase');
     
    $connexion=mysql_pconnect(serveur,nom,passe);
    if (!$connexion)
    {
    	echo "connexion impossible !";
    }
    else if (!mysql_select_db(base, $connexion))
    {
    	echo "base non accessible !";
    }
    ?>

  2. #2
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour

    Je ne sais si vos problèmes viennent de là, mais vous utilisez une extension de connexion obsolète, comme indiqué dans la page php.net : mysql_pconnect

    "Avertissement

    Cette extension est obsolète depuis PHP 5.5.0, et sera supprimée dans le futur. À la place, les extensions MySQLi ou PDO_MySQL doivent être utilisées. "
    Je vous suggère d'essayer de modifier votre connexion.

    Pierre

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Effectivement, l'API mysql_ est obsolète, mais à mon avis ce n'est pas là qu'est le problème, pourvu que le serveur que tu utilises la supporte encore. (cela dit, c'est pas une bonne idée de continuer à développer avec, dans la mesure où dans un avenir proche elle ne sera plus disponible dans les serveurs et là, ça ne marchera plus )

    En revanche mysql_pconnect, c'est une fonction pour des connexions persistantes. Tu as besoin de connexions persistantes ? Tu penses bien à les fermer ?

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Merci pour vos réponses,

    Pour le moment ça fonctionne quand même avec cette connexion.

    effectivement j'avais lu quelque chose disant que ça allait être supprimé. Du coup j'ai une autre question qui en découle, quand dans mon développement je fais des mysql_query, mysql_fetch_assoc, mysql_num_rows,... est ce que tout cela va également être obsolète?

    Sinon qu'appelle tu une connexion persistante? Parce que j'ouvre une session mais elle se ferme si l'utilisateur la ferme en cliquant sur un bouton déconnexion ou alors quand le temps de la session est écoulé.

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    est ce que tout cela va également être obsolète?
    Obsolète, l'extension mysql_* l'est déjà depuis longtemps puisque plus maintenue depuis déjà pas mal d'années !
    En revanche, elle est désormais Deprecated par PHP qui est susceptible de la supprimer n'importe quand dans les futures versions du langage.

    Cela fait déjà fort longtemps qu'il est préconisé d'utiliser mysqli_* ou PDO.

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur PHP
    Inscrit en
    Mai 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur PHP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 37
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par aclait Voir le message
    Du coup j'ai une autre question qui en découle, quand dans mon développement je fais des mysql_query, mysql_fetch_assoc, mysql_num_rows,... est ce que tout cela va également être obsolète?
    Oui, ça risque à termes de disparaitre. Prévois de changer vers PDO ou MySQLi qui eux sont encore maintenu.

    JFFM

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Par "connexion persistante" je parle de la connexion à la base de données (et pas de la connexion de l'utilisateur à l'application)

    mysql_pconnect() se comporte exactement comme mysql_connect(), mais avec deux différences majeures :

    Premièrement, lors de la connexion, la fonction essaie de trouver une connexion permanente déjà ouverte sur cet hôte, avec le même nom d'utilisateur et de mot de passe. Si une telle connexion est trouvée, son identifiant est retourné, sans ouvrir de nouvelle connexion.

    Deuxièmement, la connexion au serveur MySQL ne sera pas terminée avec la fin du script. Au lieu de cela, le lien sera conservé pour un prochain accès (mysql_close() ne terminera pas une connexion persistante établie par mysql_pconnect()).

    C'est pourquoi ce type de connexion est dite persistante.
    http://fr2.php.net/manual/fr/functio...l-pconnect.php

    Bon en gros, tu as (par exemple) 5 connexions ouvertes en permanence entre ton appli et ta base, et dès qu'un script a besoin d'utiliser la base, il va piocher parmi une connexion disponible parmi les 5.
    L'avantage de ce système, c'est que ça diminue vachement les temps de connexions à la base. Sauf que si le serveur MySQL et le serveur PHP sont sur la même machine, en général, l'avantage n'est pas flagrant.

    L'inconvénient, c'est que 1) ça limite le nombre de connexions en parallèle : si tu as un pool de 5 connexions et que tu as 6 utilisateurs connectés en même temps, ça va planter, et 2) tes connexions ont une durée de vie : si il ne se passe rien pendant un certain temps, la connexion va tomber en time ut et te jeter un message "Mysql server has gone away" (tiens, ça me rappelle quelque chose...)

  8. #8
    Membre à l'essai
    Inscrit en
    Juin 2013
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    oki, merci beaucoup pour vos réponses, je vais donc essayer de voir avec mysql light ou PDO.

  9. #9
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Points : 479
    Points
    479
    Par défaut
    Bonjour.

    Je suis client 1&1, et il me semble qu'on peut choisir sa version PHP (cela peut dépanner en attendant).

    Passer aux instructions 'mysqli', comme il vous l'a été recommandé, est très facile... En revanche PDO est une autre paire de manches !...

    Cdlt

  10. #10
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour

    Faut pas exagérer, PDO est tout à fait accessible.

    Pierre

  11. #11
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    ...Accessible et plus agréable à écrire et aussi plus pratique. Par exemple avec mysqli_ on doit binder individuellement ses variables alors qu'avec pdo on peut passer un tableau dans le execute().

    Pour être passé de mysql_ à mysqli_ puis à pdo, je me dis que j'aurais mieux fait de passer directement de mysql_ à pdo car le petit apprentissage supplémentaire nécessaire pour passer à pdo (car effectivement mysqli_ ressemble de très près à mysql_) est vite rentabilisé. Donc après retour d'expérience, je dirai que si tu code de temps en temps pour ton plaisir tu peux te contenter d'utiliser mysqli_, mais si c'est pour une utilisation plus professionnelle et à long terme, autant te mettre à pdo tout de suite.

  12. #12
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonsoir
    Moi qui suit passé de rien à PDO, et même si je ne peux pas dire que je maîtrise tout, j'ai trouvé cela tout à fait abordable.

    Pierre

Discussions similaires

  1. [MySQL] soucis de connexion sur base en ligne
    Par No3l_tek dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/05/2008, 14h15
  2. Souci de connexion SharePoint / SqlServeur
    Par cocosql dans le forum SharePoint
    Réponses: 4
    Dernier message: 21/05/2008, 10h51
  3. club internet : petit souci de connexion
    Par hiko-seijuro dans le forum Dépannage et Assistance
    Réponses: 20
    Dernier message: 29/10/2006, 12h35
  4. soucis de connexion réseau
    Par arfy dans le forum Administration
    Réponses: 3
    Dernier message: 26/12/2005, 12h23
  5. Souci de connexion internet via PPPoE sous Knoppix
    Par Anomaly dans le forum Réseau
    Réponses: 11
    Dernier message: 23/09/2004, 20h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo