mysql query can't connect to mysql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : mysql query can't connect to mysql

par Ryle » 20 nov. 2007, 01:52

A cet endroit :
@mysql_connect("$nomHote","$nomUtilisateur","$motDePasse"); 
Tu peux virer l'arobase et les guillemets. Le premier t'empêche de voir s'il y a une erreur de connexion en masquant le message d'erreur, les secondes ne servent à rien :
mysql_connect($nomHote,$nomUtilisateur,$motDePasse); 
Ton erreur num_rows apparait parce que la variable que tu passes en argument n'est pas un résultat MySQL valide. Donc $resultat ne contient pas un résultat valide. Donc la fonction mysql_query() a généré une erreur lorsqu'elle a tenté d'exécuter la requête $sql.

Tu peux ajouter un or die() après l'exécution voir s'il n'y a pas d'erreur SQL (indépendantes de php) :
$resultat = mysql_query($sql) or die (mysql_error());
Tu peux également exécuter ton SELECT dans phpMyAdmin pour vérifier qu'il s'exécute proprement (si les noms des tables et des champs sont les bons, ...)

par choubix » 20 nov. 2007, 00:21

bon, il et tard chez moi (ou plutot extrement tot) et je n'ai pas dormi mais: les 2 requetes ne sont pas identiques la??

par ailleurs tu n'as pas d'operateur dans ton IF: c'est normal?

genre:

if (resultat de la requete < a qq chose)
{
faire une action ici
}
else
{
faire une action la
}

par chodaboy34 » 19 nov. 2007, 23:39

Ok, c'est bien ça. Merci de ton aide.

Je manque un peu de pratique en php, mais c'est vrai que l'accés à la base de données était erroné.

Les code d'accés à la base de données sont dans un fichier bdd.php :
$nomHote = "*****";
$nomUtilisateur = "*****";
$motDePasse = "*****";
$nomBase = "*****";
La connexion se fait ici :
@mysql_connect("$nomHote","$nomUtilisateur","$motDePasse");
$base = @mysql_selectdb("$nomBase");
J'ai resaisis des valeurs correctes et ça fonctionne. Par contre, il me reste un message d'erreur mysql_num_rows :

Code : Tout sélectionner

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home.21/a/n/n/annoncesgp/www/fonctions.php on line 36
D'aprés ce que j'ai lu dans le manuel php, mysql_num_rows retourne le nombre de ligne d'un résultat. La fonction num_rows est utilisée dans mon fichier index.php :
if(mysql_num_rows($resultat))
mysql_num_rows($resultat2);
Et les variables résultat sont définies de cette maniére :
$resultat = mysql_query($sql);
$resultat2 = mysql_query($sql);
La variable $sql définie ici :

Code : Tout sélectionner

$sql = "SELECT catid,nom,couleur FROM ann_categories ORDER BY nom ASC";
Est-ce que l'erreur num_rows apparait parce que la base de données est vide ? Ou bien, dois je chercher l'origine de ce probléme ailleurs ?

par Berzemus » 19 nov. 2007, 22:39

jolie la gestion d'erreur :?

clairement un problème de connection à MySQL. Quels sont les paramètres (hormis user et password, bien entendu) de mysql_connect() ?

D'un autre côté, ce serait bon de vérifier le fichier my.ini pour voir quels accès il autorise et d'ou ils peuvent venir.

mysql query can't connect to mysql

par chodaboy34 » 19 nov. 2007, 22:23

Bonjour,

On m'a demandé de régler un probléme sur un site web : http://www.annonces-lucratives.com

J'ai plusieurs messages d'erreur concernant la fonction mysql_query, du type :

Code : Tout sélectionner

Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /home.21/a/n/n/annoncesgp/www/index.php on line 22
J'ai tenté de copier mes scripts sur un pc linux et je n'ai pas eu ces messages d'erreur.

Ma question va peut être paraître bête, mais je ne sais pas pourquoi j'ai ce probléme sur mon hébergement, avec easyphp sous Windows, mais pas sur le pc linux où je teste les fichiers... Quelqu'un peut il m'éclairer ?

Merci