Problemet er, at mysql_query()
returnerer en boolean i stedet for en resultatressource. Der er to grunde til, at dette kan ske:
- Du udførte forespørgsel, der returnerer succes/fejl i stedet for et resultatsæt (f.eks.
UPDATE
) - Din forespørgsel mislykkedes
I dit tilfælde mislykkedes forespørgslen. Grunden til, at det mislykkedes, er, fordi du har undslipet de bagerste markeringer i PHP-strengen, hvor du ikke behøvede det.
Dine linjer ser sådan ud:
$siteTitle = mysql_result(mysql_query("SELECT \`siteTitle\` FROM siteSettings"), 0);
Når de simpelthen skulle være dette:
$siteTitle = mysql_result(mysql_query("SELECT `siteTitle` FROM siteSettings"), 0);
Nu nogle sidebemærkninger:
- Skriv ikke ny kode, der bruger
mysql_*
funktioner. De er forældet og vil i sidste ende blive fjernet fra PHP. Brug MySQLi eller PDO i stedet (jeg anbefaler personligt BOB, YMMV) - Indlejring af databasefunktioner på denne måde er ikke en særlig god måde at skrive din kode på. Det er meget bedre at kontrollere fejlene eksplicit efter hvert funktionskald.
For eksempel:
$result = mysql_query("SELECT somecol FROM sometable");
if (!$result) {
// Handle error here
}
// Now process the result
- Du bør citere enten alle identifikatorer eller ingen i dine forespørgsler (helst alle). At kun citere nogle gør det sværere at læse.
For eksempel.
SELECT `siteTitle` FROM `siteSettings`