[PHP] Connexion à MySQL

Connexion à MySQL [PHP] - PHP - Programmation

Marsh Posté le 25-01-2004 à 13:35:15    

Bonjour, j'ai un problème de débile  ;)  
Je développe un petit soft en PHP interfacé à MySQL, tout ce qu'il y a de plus classique. Par habitude, je sépare toujours les choses en un fichier config.php avec les paramètres de connexionà MySQL, functions.php contenant les différentes fonctions puis j'appelle tout le bouzin. Et ça ne marche pas ! Aucune requête MySQL. J'ai du faire une erreur de débile mais je ne la vois pas. La table est bien créée et je ne prends pas de message d'erreur. Des idées ?
 
config.php

Code :
  1. <?php
  2. /* Please fill in the parameters that are required to connect to your MySQL database */
  3. // The name of your database server.
  4. // localhost is current but please contact the admin of the serveur
  5. $sql_server = 'localhost';
  6. // Name of the user who has access to the database
  7. // Does not work yet
  8. $sql_user = 'xxx';
  9. // Password to connect to the database
  10. // Does not work yet
  11. $sql_password = 'xxx';
  12. // Name of the database
  13. $sql_db = 'xxx';
  14. ?>


 
functions.php

Code :
  1. <?php
  2. require 'config.php';
  3. // This function connects the software to the database. Parameters are in config.php
  4. function db_connect()
  5. {
  6. @mysql_connect($sql_server, $sql_user , $sql_password )
  7.   or die ("Can't connect to MySQL server!" );
  8. @mysqll_select_db( $sql_db )
  9.   or die ("Can't select the right table!" );
  10. }
  11. ?>


 
et puis un petit test.php

Code :
  1. <?php
  2. include 'functions.php';
  3. db_connect();
  4. $sql = mysql_query("SELECT login FROM users" );
  5. $sqlarray = mysql_fetch_array($sql);
  6. print "<table>";
  7. while ($sqlarray)
  8. {
  9. print "<tr><td>".$sqlarray['login']."</td></tr>";
  10. }
  11. print "</table>";
  12. mysql_close();
  13. ?>


Message édité par Goon le 25-01-2004 à 13:36:21
Reply

Marsh Posté le 25-01-2004 à 13:35:15   

Reply

Marsh Posté le 25-01-2004 à 13:36:34    

En même temps, si t'appelles tes fonctions avec un @ devant, c'est normal que t'aies pas de message d'erreur...


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 25-01-2004 à 13:39:03    

Taiche a écrit :

En même temps, si t'appelles tes fonctions avec un @ devant, c'est normal que t'aies pas de message d'erreur...

Oups, je savais pas. J'ai maintenant un joli Can't select the right table. Pourtant la table existe. Et en codant en dur dans la fonction les paramètres de connection ça marche sans problème...

Reply

Marsh Posté le 25-01-2004 à 13:40:15    

P'têt le mysqll_select_db() ? :ange:


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 25-01-2004 à 13:46:06    

Taiche a écrit :

P'têt le mysqll_select_db() ? :ange:

Euh, je l'avais corrigé.  :D Je suis désolé, je suis très loin d'être un vrai programmeur  :sweat:

Reply

Marsh Posté le 25-01-2004 à 13:49:06    

hum... table != db ...

Reply

Marsh Posté le 25-01-2004 à 13:49:44    

Ah putain ouais, j'avais même pas vu [:ddr555]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 25-01-2004 à 13:51:49    

gizmo a écrit :

hum... table != db ...

Tu peux expliciter ?  :whistle:

Reply

Marsh Posté le 25-01-2004 à 15:22:11    

db --> database : base de donnéees
 
un serveur de base de données peut recevoir plusieurs databases
 
une base de données contient des tables .......
 
en général on créer une db (de N tables) spécifique à une application


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 26-01-2004 à 08:52:10    

ça je comprend bien, mais ça renvoie juste à mon "Can't select the right table!" ?

Reply

Marsh Posté le 26-01-2004 à 08:52:10   

Reply

Marsh Posté le 26-01-2004 à 09:17:12    

Goon a écrit :

ça je comprend bien, mais ça renvoie juste à mon "Can't select the right table!" ?


 
Elle existe au moins cette BD? T'as essaye en ligne de commande (use nom_de_la_bd a l'invite mysql) pour voir si tu avais une erreur?
 
EDIT : et puis change ce msg d'erreur.


Message édité par impulse le 26-01-2004 à 09:18:44
Reply

Marsh Posté le 26-01-2004 à 09:39:24    

Oui elle existe. Et j'ai essayé avec d'autres bases.

Reply

Marsh Posté le 26-01-2004 à 10:06:32    

Goon a écrit :

Oui elle existe. Et j'ai essayé avec d'autres bases.


 
Essaye en ligne de commande si tu peux comme ça tu verras d'ou vient l'erreur. Le user que tu utilises n'a peut etre pas les droits sur cette base.
 
Utilise mysql_error pour recuperer le msg d'erreur :

Code :
  1. $link = mysql_connect($sql_server, $sql_user , $sql_password)
  2.   or die ("Can't connect to MySQL server!" );
  3. mysql_select_db($sql_db, $link)
  4.   or die ("Can't select the right db!" );
  5. echo mysql_error($link);


Message édité par impulse le 26-01-2004 à 10:07:00
Reply

Marsh Posté le 26-01-2004 à 17:29:15    

Logique que tu aies un problème, les variables de config sont pas reconnue par ta fonction (portée des variables tout ça), voire $GLOBALS ou mot clé global (le jour où je les inverserai pas ces deux là...)

Reply

Marsh Posté le 27-01-2004 à 08:53:12    

naceroth a écrit :

Logique que tu aies un problème, les variables de config sont pas reconnue par ta fonction (portée des variables tout ça), voire $GLOBALS ou mot clé global (le jour où je les inverserai pas ces deux là...)


 
Tout a fait. :jap:
 
Goon > si j'etais toi j'utiliserais des constantes :
 

Code :
  1. $sql_user = 'xxx';
  2. devient :
  3. define ('SQL_USER', 'xxx');

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed