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 :

Fonction mysql_connect non-définie [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2006
    Messages : 50
    Points : 37
    Points
    37
    Par défaut Fonction mysql_connect non-définie
    Bonjour à tous....

    Je galère sur ce problème depuis plusieurs jours, et là je suis près de jeter la serviette..

    J'essai de faire fonctionner PHP avec une base de données sur MySQL, et je recois ce message :

    Fatal error: Call to undefined function mysql_connect() in c:\Inetpub\wwwroot\test_db.php on line 3
    Ma configuration :
    Windows XP Pro, IIS 5.1
    PHP v 5.1.2, installé avec SAPI
    MySQL 5.0.18

    Le fichier avec lequel j'essai de tester :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?php
    // Connexion et sélection de la base
    $link = mysql_connect("localhost", "root", "Password")   <- LIGNE EN PROBLEME
       or die("Impossible de se connecter");
    echo "Connexion réussie";
    mysql_select_db("mysql") or die("Could not select database");
     
    // Exécuter des requêtes SQL
    $query = "SELECT * FROM user";
    $result = mysql_query($query) or die("Query failed");
     
    // Afficher des résultats en HTML
    echo "<table>\n";
    while ($line = mysql_fetch_assoc($result)) {
       echo "\t<tr>\n";
       foreach ($line as $col_value) {
           echo "\t\t<td>$col_value</td>\n";
       }
       echo "\t</tr>\n";
    }
    echo "</table>\n";
     
    // Libération des résultats 
    mysql_free_result($result);
     
    // Fermeture de la connexion 
    mysql_close($link);
    ?>
    Et voici les options de mon fichier PHP.ini concernant MySQL :
    Code X : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    (...)
    ; Windows: "\path1;\path2"
    ;include_path = ".;c:\php\includes"
    (...)
    ; Directory in which the loadable extensions (modules) reside.
    extension_dir = "C:\php\ext"
    (...)
    extension=php_mysql.dll
    (...)
    [MySQL]
    ; Allow or prevent persistent links.
    mysql.allow_persistent = On
    
    ; Maximum number of persistent links.  -1 means no limit.
    mysql.max_persistent = -1
    
    ; Maximum number of links (persistent + non-persistent).  -1 means no limit.
    mysql.max_links = -1
    
    ; Default port number for mysql_connect().  If unset, mysql_connect() will use
    ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
    ; compile-time value defined MYSQL_PORT (in that order).  Win32 will only look
    ; at MYSQL_PORT.
    mysql.default_port = 3306
    
    ; Default socket name for local MySQL connects.  If empty, uses the built-in
    ; MySQL defaults.
    mysql.default_socket =
    
    ; Default host for mysql_connect() (doesn't apply in safe mode).
    mysql.default_host = 
    
    ; Default user for mysql_connect() (doesn't apply in safe mode).
    mysql.default_user =
    
    ; Default password for mysql_connect() (doesn't apply in safe mode).
    ; Note that this is generally a *bad* idea to store passwords in this file.
    ; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password")
    ; and reveal this password!  And of course, any users with read access to this
    ; file will be able to reveal the password as well.
    mysql.default_password =
    
    ; Maximum time (in secondes) for connect timeout. -1 means no limit
    mysql.connect_timeout = 60
    
    ; Trace mode. When trace_mode is active (=On), warnings for table/index scans and
    ; SQL-Errors will be displayed.
    mysql.trace_mode = Off
    
    [MySQLi]
    
    ; Maximum number of links.  -1 means no limit.
    mysqli.max_links = -1
    
    ; Default port number for mysqli_connect().  If unset, mysqli_connect() will use
    ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
    ; compile-time value defined MYSQL_PORT (in that order).  Win32 will only look
    ; at MYSQL_PORT.
    mysqli.default_port = 3306
    
    ; Default socket name for local MySQL connects.  If empty, uses the built-in
    ; MySQL defaults.
    mysqli.default_socket =
    
    ; Default host for mysql_connect() (doesn't apply in safe mode).
    mysqli.default_host =
    
    ; Default user for mysql_connect() (doesn't apply in safe mode).
    mysqli.default_user =
    
    ; Default password for mysqli_connect() (doesn't apply in safe mode).
    ; Note that this is generally a *bad* idea to store passwords in this file.
    ; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")
    ; and reveal this password!  And of course, any users with read access to this
    ; file will be able to reveal the password as well.
    mysqli.default_pw =
    
    ; Allow or prevent reconnect
    mysqli.reconnect = Off

    La bibliothèque php_mysql.dll est dans le répertoire ext comme prévue, et libmysql.dll est dans le répertoire c:\php\.

    Le chemin c:\php est dans le path de windows.

    Alors, qu'est-ce qui pose problème.... j'ai beau relire toutes les docs, je ne trouve pas !!!

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 332
    Points
    332
    Par défaut
    as tu autorisé les dlls et la dll core de mysql dans les extensions autorisée de ton iis ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    ouvre ton php.ini et enlève le ; devant le ligne : ;extension=mysql.so

  4. #4
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 332
    Points
    332
    Par défaut
    dans une version de php pour windows ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2006
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par MacReiben
    as tu autorisé les dlls et la dll core de mysql dans les extensions autorisée de ton iis ?
    A quel endroit je dois faire ca ??? j'ai ouvert la boite de propriété de IIS, je n'ai vu que l'onglet des Filtres où on semble pouvoir ajouter des librairies ou quelque chose du genre...

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2006
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par gotcha007
    ouvre ton php.ini et enlève le ; devant le ligne : ;extension=mysql.so
    Si tu regardes dans mon php.ini que j'ai copié en pârtie dans mon premier message, tu verras que j'ai mis extension=php_mysql.dll activé (version pour Windows)

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2006
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    Bon.... J'ai trouvé le problème....

    En fouillant, et surtout en vérifiant les variables lues avec phpinfo(), je me suis rendu compte que le fichier php.ini ne semblait pas être lu par Windows. Ma variable doc_root etait vide, et extension_dir pointait vers c:\php5. Ce expliquait que ma fonction n'était pas reconnue, puisque la librairie n'était pas chargée !!!

    J'ai donc refouiller, et re fouiller la doc sur le site PHP, pour finalement découvrir, presque par hasard, dans un tout petit coin de la documentation, que pour Windows, php.ini doit être placé dans le répertoire Windows. Pourtant, avec PHP5, partout ailleurs on mentionne que l'on ne doit déplacé aucun fichier, et plutot s'assurer que le répertoire PHP est dans le PATH de Windows.

    Une fois le fichier copié dans c:\windows, tout redevient normal !!!!

    Merci pour l'aide quand même !!!!!


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fonction 'Right' non définie
    Par nellynew dans le forum Access
    Réponses: 1
    Dernier message: 16/01/2007, 08h54
  2. fonction date non définie
    Par eljbdec dans le forum Access
    Réponses: 1
    Dernier message: 31/12/2006, 14h44
  3. [Fonction] fonction mysql_connect non reconnue
    Par O'neill dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 20/02/2006, 18h47
  4. Réponses: 2
    Dernier message: 23/01/2006, 18h07
  5. [RAR] Fonction rar_open non définie
    Par laulau75 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 11/11/2005, 12h19

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