Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

MYSQL - Base de données ne se connecte pas

5 réponses
Avatar
Denis Beauregard
Bonjour,

J'essaie d'installer une BD dans un nouveau compte.

J'ai ces énoncés:

$db = mysql_connect ($strDBServer, $strDBUser, $strDBPass);
echo mysql_error($db);


Comme paramètres, j'ai ceci :

$strDBServer="localhost", ce qui correspond à ce que montre phpmyadmin
$strDBUser et $strDBPass sont valides car si j'ajoute une lettre à
l'un ou l'autre, j'ai tout de suite un message d'erreur.

Donc, en théorie, l'énoncé mysql_connect devrait fonctionner.
Pourtant, j'obtiens ce message d'erreur au lieu du echo :

Warning: mysql_error(): supplied argument is not a valid MySQL-Link
resource in *** on line ***

Donc, $db n'est pas valide. Pourtant, il est le résultat d'un
mysql_connect qui me semble tout à fait valide.

Où est l'erreur ?


Denis

5 réponses

Avatar
Vincent
Le 17/02/2011 22:49, Denis Beauregard a écrit :
J'ai ces énoncés:
$db = mysql_connect ($strDBServer, $strDBUser, $strDBPass);
echo mysql_error($db);
Pourtant, j'obtiens ce message d'erreur au lieu du echo :

Warning: mysql_error(): supplied argument is not a valid MySQL-Link
resource in *** on line ***

Donc, $db n'est pas valide. Pourtant, il est le résultat d'un
mysql_connect qui me semble tout à fait valide.



C'est du php apparemment.
Ce n'est pas une requête faite après la connexion qui génère l'erreur ?
Essaie :
$db = mysql_connect ($strDBServer, $strDBUser, $strDBPass) or die
("Erreur à la connexion");
Avatar
Denis Beauregard
Le Fri, 18 Feb 2011 00:35:00 +0100, Vincent
écrivait dans fr.comp.applications.sgbd:

Le 17/02/2011 22:49, Denis Beauregard a écrit :
J'ai ces énoncés:
$db = mysql_connect ($strDBServer, $strDBUser, $strDBPass);
echo mysql_error($db);
Pourtant, j'obtiens ce message d'erreur au lieu du echo :

Warning: mysql_error(): supplied argument is not a valid MySQL-Link
resource in *** on line ***

Donc, $db n'est pas valide. Pourtant, il est le résultat d'un
mysql_connect qui me semble tout à fait valide.



C'est du php apparemment.
Ce n'est pas une requête faite après la connexion qui génère l'erreur ?
Essaie :
$db = mysql_connect ($strDBServer, $strDBUser, $strDBPass) or die
("Erreur à la connexion");




Je viens de trouver l'erreur. J'avais mis une majuscule dans le
nom de la variable dans un cas...

Ceci dit, j'ai tout de même un autre problème.

Je fais un mysql_query qui retourne zéro résultat, mais avec
phpmyadmin, cela fonctionne.

En fait, j'ai cette séquence:

echo "Requete =[".$query."]<P>";

$res = mysql_query($query);
echo "res=[";
print_r($res);
echo "]<br>";
$nb_rep = mysql_num_rows($res);


$query contient un SELECT et il est valide (je recopie la réponse
du echo dans phpmyadmin). Mais j'obtiens ce message d'erreur:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL
result resource in

et le print_r n'affiche rien, donc $res est nul.



Denis
Avatar
Olivier Miakinen
Bonjour,

Le 18/02/2011 04:27, Denis Beauregard a écrit :

Je fais un mysql_query qui retourne zéro résultat, mais avec
phpmyadmin, cela fonctionne.

En fait, j'ai cette séquence:

echo "Requete =[".$query."]<P>";

$res = mysql_query($query);
echo "res=[";
print_r($res);
echo "]<br>";
$nb_rep = mysql_num_rows($res);


$query contient un SELECT et il est valide (je recopie la réponse
du echo dans phpmyadmin). Mais j'obtiens ce message d'erreur:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL
result resource in



C'est probablement que mysql_query() a retourné FALSE à cause d'une
erreur. Ton code devrait d'ailleurs tester si $res vaut FALSE avant
d'appeler mysql_num_rows().

et le print_r n'affiche rien, donc $res est nul.



On en arrive à la même conclusion. D'où le test d'erreur à ne pas
oublier, ainsi qu'il est suggéré dans la doc :

<cit. http://fr2.php.net/mysql_query>
// Exécution de la requête
$result = mysql_query($query);

// Vérification du résultat
// Ceci montre la requête envoyée à MySQL ainsi que l'erreur.
// Utile pour déboguer.
if (!$result) {
$message = 'Requête invalide : ' . mysql_error() . "n";
$message .= 'Requête complète : ' . $query;
die($message);
}
?>

Que dit mysql_error() dans ton cas ?

</cit.>
Avatar
Denis Beauregard
Bonjour,

J'ai fini par trouver !!!

Je n'avais pas associé l'usager avec la base de données.

Je préfère cPanel à Panelbox car cPanel montre les paramètres
un après l'autre en permanence alors que Panelbox ne les montre
que si on place la souris au bon endroit. Avec cPanel, j'aurais
tout de suite pensé à associer l'usager à la base, mais pas avec
Panelbox, d'où mon erreur.


Denis, soulagé...
Avatar
Olivier Miakinen
Le 18/02/2011 14:18, Denis Beauregard a écrit :

J'ai fini par trouver !!!



Tant mieux.

Mais note que le conseil de tester le code de retour de chaque fonction
mysql reste d'actualité : tu devrais le faire à chaque fois.