Проблемът е, че mysql_query()
връща булев вместо резултатен ресурс. Има две причини това да се случи:
- Изпълнихте заявка, която връща успех/неуспех вместо набор от резултати (напр.
UPDATE
) - Заявката ви не бе успешна
Във вашия случай заявката е неуспешна. Причината да се провали е, че сте избягали от обратните отметки в низа на PHP, където не е необходимо.
Вашите редове изглеждат така:
$siteTitle = mysql_result(mysql_query("SELECT \`siteTitle\` FROM siteSettings"), 0);
Когато те трябва да бъдат просто това:
$siteTitle = mysql_result(mysql_query("SELECT `siteTitle` FROM siteSettings"), 0);
Сега, някои странични бележки:
- Не пишете нов код, който използва
mysql_*
функции. Те са отхвърлени и в крайна сметка ще бъдат премахнати от PHP. Използвайте MySQLi или PDO вместо това (аз лично препоръчвам PDO, YMMV) - Вложените функции на база данни по този начин не е особено добър начин да напишете кода си. Много по-добре е грешките да се проверяват изрично след всяко извикване на функция.
Например:
$result = mysql_query("SELECT somecol FROM sometable");
if (!$result) {
// Handle error here
}
// Now process the result
- Трябва да цитирате всички идентификатори или нито един в заявките си (за предпочитане всички). Цитирането само на някои прави четенето по-трудно.
напр.
SELECT `siteTitle` FROM `siteSettings`