Das Problem ist, dass mysql_query()
gibt statt einer Ergebnisressource einen booleschen Wert zurück. Dafür gibt es zwei Gründe:
- Sie haben eine Abfrage durchgeführt, die statt einer Ergebnismenge Erfolg/Fehlschlag zurückgibt (z. B.
UPDATE
) - Ihre Abfrage ist fehlgeschlagen
In Ihrem Fall ist die Abfrage fehlgeschlagen. Der Grund dafür ist, dass Sie die Backticks im PHP-String maskiert haben, wo Sie es nicht brauchten.
Ihre Zeilen sehen so aus:
$siteTitle = mysql_result(mysql_query("SELECT \`siteTitle\` FROM siteSettings"), 0);
Wenn sie einfach so sein sollten:
$siteTitle = mysql_result(mysql_query("SELECT `siteTitle` FROM siteSettings"), 0);
Nun einige Randnotizen:
- Schreiben Sie keinen neuen Code, der
mysql_*
verwendet Funktionen. Sie sind veraltet und werden schließlich aus PHP entfernt. Verwenden Sie MySQLi oder PDO stattdessen (ich persönlich empfehle PDO, YMMV) - Das Verschachteln von Datenbankfunktionen auf diese Weise ist keine besonders gute Art, Ihren Code zu schreiben. Es ist viel besser, die Fehler explizit nach jedem Funktionsaufruf zu überprüfen.
Zum Beispiel:
$result = mysql_query("SELECT somecol FROM sometable");
if (!$result) {
// Handle error here
}
// Now process the result
- Sie sollten in Ihren Anfragen entweder alle Identifikatoren oder keine angeben (vorzugsweise alle). Nur einige zu zitieren erschwert das Lesen.
Z.B.
SELECT `siteTitle` FROM `siteSettings`