Masalahnya adalah mysql_query()
mengembalikan boolean alih-alih sumber daya hasil. Ada dua alasan mengapa hal ini bisa terjadi:
- Anda melakukan kueri yang mengembalikan sukses/gagal alih-alih kumpulan hasil (mis.
UPDATE
) - Kueri Anda gagal
Dalam kasus Anda, kueri gagal. Alasan gagalnya adalah karena Anda telah lolos dari tanda centang kembali di string PHP di mana Anda tidak perlu melakukannya.
Garis Anda terlihat seperti ini:
$siteTitle = mysql_result(mysql_query("SELECT \`siteTitle\` FROM siteSettings"), 0);
Ketika mereka seharusnya seperti ini:
$siteTitle = mysql_result(mysql_query("SELECT `siteTitle` FROM siteSettings"), 0);
Sekarang, beberapa catatan tambahan:
- Jangan menulis kode baru yang menggunakan
mysql_*
fungsi. Mereka tidak digunakan lagi dan pada akhirnya akan dihapus dari PHP. Gunakan MySQLi atau PDO sebagai gantinya (saya pribadi merekomendasikan PDO, YMMV) - Menyarangkan fungsi database dengan cara ini bukanlah cara yang baik untuk menulis kode Anda. Jauh lebih baik untuk memeriksa kesalahan secara eksplisit setelah setiap pemanggilan fungsi.
Misalnya:
$result = mysql_query("SELECT somecol FROM sometable");
if (!$result) {
// Handle error here
}
// Now process the result
- Anda harus mengutip semua pengenal, atau tidak sama sekali, dalam kueri Anda (sebaiknya semua). Mengutip hanya beberapa membuatnya lebih sulit untuk dibaca.
Misalnya.
SELECT `siteTitle` FROM `siteSettings`