Problém je v tom, že mysql_query()
vrací boolean místo zdroje výsledku. To může nastat ze dvou důvodů:
- Provedli jste dotaz, který místo sady výsledků vrací úspěch/neúspěch (např.
UPDATE
) - Váš dotaz se nezdařil
Ve vašem případě se dotaz nezdařil. Důvod, proč selhal, je ten, že jste unikli zpětným znaménkům v řetězci PHP tam, kde jste to nepotřebovali.
Vaše řádky vypadají takto:
$siteTitle = mysql_result(mysql_query("SELECT \`siteTitle\` FROM siteSettings"), 0);
Když by prostě měly být toto:
$siteTitle = mysql_result(mysql_query("SELECT `siteTitle` FROM siteSettings"), 0);
Nyní několik poznámek na okraj:
- Nepište nový kód, který používá
mysql_*
funkcí. Jsou zastaralé a nakonec budou z PHP odstraněny. Použijte MySQLi nebo CHOP místo toho (osobně doporučuji PDO, YMMV) - Vnořování databázových funkcí tímto způsobem není zvlášť dobrý způsob psaní kódu. Je mnohem lepší zkontrolovat chyby explicitně po každém volání funkce.
Například:
$result = mysql_query("SELECT somecol FROM sometable");
if (!$result) {
// Handle error here
}
// Now process the result
- Ve svých dotazech byste měli uvádět buď všechny identifikátory, nebo žádný (nejlépe všechny). Citování pouze některých ztěžuje čtení.
Např.
SELECT `siteTitle` FROM `siteSettings`