問題は、mysql_query()
結果リソースの代わりにブール値を返しています。これが発生する理由は2つあります。
- 結果セットの代わりに成功/失敗を返すクエリを実行しました(例:
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`