Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Saya Mendapat \'Panggilan kepada Fungsi Ahli menyediakan() pada Bukan Objek\' dalam PHP?

Mengapa Saya Mendapat \'Panggilan kepada Fungsi Ahli menyediakan() pada Bukan Objek\' dalam PHP?

Linda Hamilton
Linda Hamiltonasal
2024-11-28 12:14:11216semak imbas

Why Am I Getting

Panggil ke Fungsi Ahli sediakan() pada Bukan Objek dalam PHP: Penyelesaian Masalah

Apabila cuba menggunakan kaedah prepare() pada sambungan pangkalan data dalam PHP, anda mungkin menghadapi ralat "Panggil ke fungsi ahli sediakan() pada bukan objek." Ralat ini menunjukkan bahawa objek sambungan tidak dimulakan dengan betul atau tersedia dalam skop yang berkaitan.

Untuk menyelesaikan isu ini, pertimbangkan pilihan berikut:

1. Pastikan Permulaan Sambungan:

Sahkan bahawa anda telah memulakan dengan betul objek sambungan mysqli dengan pembina mysqli() baharu. Ini biasanya berlaku di luar fungsi yang anda ingin gunakan sambungan.

2. Skop Objek Sambungan:

Pastikan objek sambungan boleh diakses dalam fungsi yang anda gunakan. Anda boleh melakukan ini dengan menghantar sambungan sebagai parameter kepada fungsi atau menggunakan pembolehubah global. Walau bagaimanapun, penggunaan pembolehubah global secara amnya tidak digalakkan kerana potensinya untuk tingkah laku yang tidak dijangka.

3. Gunakan Corak Suntikan Kebergantungan:

Daripada pembolehubah global, pertimbangkan untuk menggunakan corak suntikan kebergantungan untuk menghantar objek sambungan kepada fungsi tersebut. Ini melibatkan mencipta objek kontena berasingan yang mengurus kebergantungan (dalam kes ini, objek sambungan) dan menyediakannya kepada fungsi yang berkaitan.

4. Gunakan Kelas Akses Pangkalan Data:

Buat kelas yang merangkum akses pangkalan data, termasuk logik sambungan dan kaedah yang berkaitan. Kelas ini akan menyediakan antara muka yang bersih untuk berinteraksi dengan pangkalan data, menghapuskan keperluan untuk akses terus kepada objek sambungan.

5. Manfaatkan Rangka Kerja Pra-bina:

Gunakan rangka kerja PHP sedia ada yang menyediakan ciri capaian pangkalan data yang mantap, seperti Zend Framework atau Laravel. Rangka kerja ini biasanya mengendalikan sambungan pangkalan data dan pertanyaan dengan elegan, menjimatkan kerumitan mengurus sendiri kerumitan.

Dengan melaksanakan penyelesaian ini, anda boleh berjaya menggunakan kaedah prepare() pada objek sambungan pangkalan data yang sah dan mengelakkan " ralat bukan objek". Ingat untuk memilih pendekatan yang paling sesuai dengan reka bentuk dan keperluan aplikasi anda.

Atas ialah kandungan terperinci Mengapa Saya Mendapat \'Panggilan kepada Fungsi Ahli menyediakan() pada Bukan Objek\' dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn