sql >> Base de Datos >  >> RDS >> Mysql

Advertencia:mysql_result() espera que el parámetro 1 sea un recurso, booleano dado

El problema es que mysql_query() está devolviendo un booleano en lugar de un recurso de resultado. Hay dos razones por las que esto puede suceder:

  1. Realizó una consulta que devuelve éxito/fallo en lugar de un conjunto de resultados (por ejemplo, UPDATE )
  2. Su consulta falló

En su caso, la consulta falló. La razón por la que falló es porque se escapó de las marcas de retroceso en la cadena de PHP donde no era necesario.

Tus líneas se ven así:

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

Cuando deberían ser simplemente esto:

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

Ahora, algunas notas al margen:

  • No escriba código nuevo que utilice mysql_* funciones Están en desuso y eventualmente se eliminarán de PHP. Utilice MySQLi o PDO en cambio (yo personalmente recomiendo PDO, YMMV)
  • Anidar funciones de base de datos de esta manera no es una forma particularmente buena de escribir su código. Es mucho mejor verificar los errores explícitamente después de cada llamada de función.

Por ejemplo:

$result = mysql_query("SELECT somecol FROM sometable");
if (!$result) {
  // Handle error here
}
// Now process the result
  • Debe citar todos los identificadores, o ninguno, en sus consultas (preferiblemente todos). Citar solo algunos hace que sea más difícil de leer.

P.ej.

SELECT `siteTitle` FROM `siteSettings`