MWN Website
ContactHome

Pesan kesalahan Fatal error Call to a member function execute on a non-object

Untuk berdiskusi dengan sesama programer dan peminat PHP, bergabunglah dengan milis id-php, milis PHP Indonesia paling aktif sejak 2002. Untuk subscribe, kunjungi halaman web milis atau kirimkan email kosong ke id-php-subscribe@yahoogroups.com.

Pertanyaan

Saya menjumpai kesalahan seperti ini saat menjalankan skrip PHP saya:

Fatal error: Call to a member function execute() on a non-object in ... on line N

Kenapa dan bagaimana menyelesaikannya?

Jawaban/solusi

Pesan ini terjadi karena prepare() di baris sebelum baris N gagal, tapi Anda tidak mengecek status keberhasilannya. Sehingga saat dicoba execute() gagal dan muncul pesan kesalahan di atas. Contoh:

$sth = $dbh->prepare("SELECT encpass FROM user WHERE username='$user' AND isdisabled=0"); 
$sth->execute();

Jika di baris pertama prepare() berhasil, maka tidak masalah, baris kedua pun akan berhasil. Tapi jika baris pertama gagal, maka $sth akan bernilai false, dan saat dicoba melainkan $sth->execute() maka akan muncul pesan kesalahan bahwa kita memanggil metode execute pada sesuatu yang bukan objek (yaitu, false).

Baris prepare() dapat gagal karena query SQL-nya salah (syntax error) atau bisa juga terjadi perubahan di database, misalnya tabel user dihapus atau direname, dsb, sehingga bisa saja sebuah skrip yang tadinya jalan dengan baik tiba-tiba suatu hari macet dengan pesan kesalahan di atas.

Untuk menampilkan pesan kesalahan yang lebih ramah/tepat, ada baiknya Anda selalu mengecek $sth. Contoh:

$sth = $dbh->prepare("SELECT encpass FROM user WHERE username='$user' AND isdisabled=0") or die("Gagal mengecek user di database"); 
$sth->execute();

Lihat juga

Untuk berdiskusi dengan sesama programer dan peminat PHP, bergabunglah dengan milis id-php, milis PHP Indonesia paling aktif sejak 2002. Untuk subscribe, kunjungi halaman web milis atau kirimkan email kosong ke id-php-subscribe@yahoogroups.com.


Navigasi

Feedback

Artikel Popular

  • selengkapnya...
  • Artikel Terbaru

  • selengkapnya...
  • Hak cipta © 2006-2010 PT Master Web Network Konten ditulis dan dikoleksi oleh staf MWN. Komentar ditulis oleh pembaca. MWN tidak bertanggung jawab atas akurasi dan/atau kekinian konten/komentar.