Mysql
 sql >> Base de données >  >> RDS >> Mysql

Attention :mysql_result() s'attend à ce que le paramètre 1 soit une ressource, un booléen donné

Le problème est que mysql_query() renvoie un booléen au lieu d'une ressource de résultat. Cela peut se produire pour deux raisons :

  1. Vous avez effectué une requête qui renvoie succès/échec au lieu d'un ensemble de résultats (par exemple, UPDATE )
  2. Votre requête a échoué

Dans votre cas, la requête a échoué. La raison pour laquelle il a échoué est que vous avez échappé les tiques arrière dans la chaîne PHP là où vous n'en aviez pas besoin.

Vos lignes ressemblent à ceci :

$siteTitle = mysql_result(mysql_query("SELECT \`siteTitle\` FROM siteSettings"), 0);

Quand ils devraient simplement être ceci :

$siteTitle = mysql_result(mysql_query("SELECT `siteTitle` FROM siteSettings"), 0);

Maintenant, quelques remarques :

  • N'écrivez pas de nouveau code qui utilise mysql_* les fonctions. Ils sont obsolètes et seront éventuellement supprimés de PHP. Utilisez MySQLi ou AOP à la place (je recommande personnellement PDO, YMMV)
  • L'imbrication des fonctions de base de données de cette manière n'est pas une bonne façon d'écrire votre code. Il est préférable de vérifier explicitement les erreurs après chaque appel de fonction.

Par exemple :

$result = mysql_query("SELECT somecol FROM sometable");
if (!$result) {
  // Handle error here
}
// Now process the result
  • Vous devez citer soit tous les identifiants, soit aucun, dans vos requêtes (de préférence tous). Citer seulement certains rend la lecture plus difficile.

Par exemple.

SELECT `siteTitle` FROM `siteSettings`