Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Aviso:mysql_result() espera que o parâmetro 1 seja resource, dado booleano


O problema é que mysql_query() está retornando um recurso booleano em vez de um resultado. Há duas razões pelas quais isso pode acontecer:
  1. Você executou uma consulta que retorna sucesso/falha em vez de um conjunto de resultados (por exemplo, UPDATE )
  2. Sua consulta falhou

No seu caso, a consulta falhou. A razão pela qual falhou é porque você escapou dos back ticks na string PHP onde você não precisava.

Suas linhas ficam assim:
$siteTitle = mysql_result(mysql_query("SELECT \`siteTitle\` FROM siteSettings"), 0);

Quando eles deveriam ser simplesmente isso:
$siteTitle = mysql_result(mysql_query("SELECT `siteTitle` FROM siteSettings"), 0);

Agora, algumas notas laterais:
  • Não escreva um novo código que use o mysql_* funções. Eles estão obsoletos e eventualmente serão removidos do PHP. Use MySQLi ou PDO em vez disso (eu pessoalmente recomendo PDO, YMMV)
  • Aninhar funções de banco de dados dessa maneira não é uma maneira particularmente boa de escrever seu código. É muito melhor verificar os erros explicitamente após cada chamada de função.

Por exemplo:
$result = mysql_query("SELECT somecol FROM sometable");
if (!$result) {
  // Handle error here
}
// Now process the result
  • Você deve citar todos os identificadores ou nenhum em suas consultas (de preferência todos). Citar apenas alguns torna a leitura mais difícil.

Por exemplo.
SELECT `siteTitle` FROM `siteSettings`