O problema é que
mysql_query()
está retornando um recurso booleano em vez de um resultado. Há duas razões pelas quais isso pode acontecer:- Você executou uma consulta que retorna sucesso/falha em vez de um conjunto de resultados (por exemplo,
UPDATE
) - 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`