Warning: mysql_num_rows() expects parameter 1 to be resource, bo
Fermé
juancelyramos
Messages postés
4
Date d'inscription
jeudi 2 janvier 2014
Statut
Membre
Dernière intervention
2 janvier 2014
-
2 janv. 2014 à 21:02
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 3 janv. 2014 à 14:11
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 3 janv. 2014 à 14:11
A voir également:
- Warning: mysql_num_rows() expects parameter 1 to be resource, bo
- Warning zone telechargement - Accueil - Services en ligne
- Pcl xl error warning illegal media type - Forum Imprimante
- Quota warning free - Guide
- Téléchargement direct : les bonnes adresses des sites pirates - Accueil - Outils
- Cpu fan fail warning control - Forum Windows
3 réponses
InformatiWeb
Messages postés
1648
Date d'inscription
lundi 21 juillet 2008
Statut
Membre
Dernière intervention
11 décembre 2021
450
Modifié par InformatiWeb le 2/01/2014 à 21:22
Modifié par InformatiWeb le 2/01/2014 à 21:22
Effectivement les fonctions PHP "mysql_" sont des fonctions PHP 4 et tu devrais donc penser à apprendre celles de PHP5. Il s'agit de PDO.
Pour apprendre la PDO, je te conseille le site du zéro.
Note : Pour sécuriser ton code en PHP 5, tu devra utiliser les requêtes préparées de PDO.
Pour ton code, tu as oublié de spécifier la connexion MySQL a utiliser.
Remplace donc :
par :
et :
par :
Dans l'informatique, Il y a toujours une solution
Pour apprendre la PDO, je te conseille le site du zéro.
Note : Pour sécuriser ton code en PHP 5, tu devra utiliser les requêtes préparées de PDO.
Pour ton code, tu as oublié de spécifier la connexion MySQL a utiliser.
Remplace donc :
$query = mysql_query('SELECT id FROM newsletter WHERE mail = "$newsLetter"');
par :
$query = mysql_query('SELECT id FROM newsletter WHERE mail = "$newsLetter"',$DB);
et :
mysql_query('INSERT INTO newsletter (adresse) VALUE ("$newsLetter")');
par :
mysql_query('INSERT INTO newsletter (adresse) VALUE ("$newsLetter")',$DB);
Dans l'informatique, Il y a toujours une solution
juancelyramos
Messages postés
4
Date d'inscription
jeudi 2 janvier 2014
Statut
Membre
Dernière intervention
2 janvier 2014
2 janv. 2014 à 21:32
2 janv. 2014 à 21:32
Super merci beaucoup, j'ai apporter les deux corrections mentionnées.
mais j'ai toujours cette erreur, je vais lire sur le PDO, et voir comme ça se passe Merci encore pour cette info!
mais j'ai toujours cette erreur, je vais lire sur le PDO, et voir comme ça se passe Merci encore pour cette info!
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
Modifié par Pitet le 3/01/2014 à 14:11
Modifié par Pitet le 3/01/2014 à 14:11
Salut,
Pas besoin de spécifier la connexion MySQL si on n'en a qu'une seule, les fonctions mysql_* vont automatiquement reprendre la dernière connexion ouverte avec mysql_connect().
Ton erreur vient du fait que la variable $query, correspondant au retour de la fonction mysql_query(), est un booléen égal à FALSE : donc que ta requête n'est pas correcte.
Il faut toujours gérer les possibles erreurs sql :
Attention à ne pas utiliser de guillemets doubles dans tes requêtes sql et à protéger les données utilisateurs contres les failles SQL. Tu devrais donc construire ta requête comme ceci (avec l'extension mysql_*) :
Bonne journée
Pas besoin de spécifier la connexion MySQL si on n'en a qu'une seule, les fonctions mysql_* vont automatiquement reprendre la dernière connexion ouverte avec mysql_connect().
Ton erreur vient du fait que la variable $query, correspondant au retour de la fonction mysql_query(), est un booléen égal à FALSE : donc que ta requête n'est pas correcte.
Il faut toujours gérer les possibles erreurs sql :
$query = mysql_query('SELECT id FROM newsletter WHERE mail = "$newsLetter"'); // on vérifie que la requête s'est bien exécutée if (!$query) { echo 'Erreur SQL : ' . mysql_error(); } else { // si il n'y a pas d'erreurs, on traite les résultats if (mysql_num_rows($query)==1) // ... etc ... }
Attention à ne pas utiliser de guillemets doubles dans tes requêtes sql et à protéger les données utilisateurs contres les failles SQL. Tu devrais donc construire ta requête comme ceci (avec l'extension mysql_*) :
$query = mysql_query("SELECT id FROM newsletter WHERE mail = '" . mysql_real_escape_string($newsLetter) . "'");
Bonne journée