Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Peringatan:mysql_result() mengharapkan parameter 1 menjadi sumber daya, diberikan boolean

Masalahnya adalah mysql_query() mengembalikan boolean alih-alih sumber daya hasil. Ada dua alasan mengapa hal ini bisa terjadi:

  1. Anda melakukan kueri yang mengembalikan sukses/gagal alih-alih kumpulan hasil (mis. UPDATE )
  2. 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`



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa melakukan FULL OUTER JOIN di MySQL?

  2. Gambaran Umum Replikasi Silang PostgreSQL &MySQL

  3. Neo4j - Hapus Node menggunakan Cypher

  4. Bagaimana saya bisa menghilangkan komentar ini di dump MySQL?

  5. Perbaiki "ERROR 1054 (42S22):Kolom tidak dikenal '...' di 'order clause' saat menggunakan UNION di MySQL