Problemet är att mysql_query()
returnerar en boolean istället för en resultatresurs. Det finns två anledningar till att detta kan hända:
- Du utförde en fråga som returnerar framgång/misslyckande istället för en resultatuppsättning (t.ex.
UPDATE
) - Din fråga misslyckades
I ditt fall misslyckades frågan. Anledningen till att det misslyckades är att du har undkommit de bakre markeringarna i PHP-strängen där du inte behövde.
Dina rader ser ut så här:
$siteTitle = mysql_result(mysql_query("SELECT \`siteTitle\` FROM siteSettings"), 0);
När de helt enkelt borde vara detta:
$siteTitle = mysql_result(mysql_query("SELECT `siteTitle` FROM siteSettings"), 0);
Nu några sidoanteckningar:
- Skriv inte ny kod som använder
mysql_*
funktioner. De är utfasade och kommer så småningom att tas bort från PHP. Använd MySQLi eller PDO istället (jag rekommenderar personligen PDO, YMMV) - Att kapsla databasfunktioner på detta sätt är inte ett särskilt bra sätt att skriva din kod. Det är mycket bättre att kontrollera felen explicit efter varje funktionsanrop.
Till exempel:
$result = mysql_query("SELECT somecol FROM sometable");
if (!$result) {
// Handle error here
}
// Now process the result
- Du bör citera antingen alla identifierare, eller ingen, i dina frågor (helst alla). Att bara citera några gör det svårare att läsa.
T.ex.
SELECT `siteTitle` FROM `siteSettings`