Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Fungsi `mysqli_query()` Saya Menerima Nilai Null Daripada Objek Sambungan MySQLi?
Memahami "Amaran: mysqli_query() menjangkakan parameter 1 adalah mysqli, null diberikan dalam"
Dalam usaha anda untuk mencipta CMS tersuai , anda mungkin mengalami mesej ralat yang ditakuti: "Amaran: mysqli_query() mengharapkan parameter 1 menjadi MySQLi, batal diberikan." Masalah yang mengecewakan ini sering timbul daripada salah faham mengenai skop pembolehubah dalam fungsi PHP.
Punca Ralat
Ralat menunjukkan bahawa fungsi getPosts() anda sedang mencuba untuk mengakses pembolehubah $con, yang menyimpan objek sambungan MySQLi anda, tetapi ia tidak boleh diakses dalam skop fungsi itu. Ini kerana $con ditakrifkan di luar fungsi getPosts().
Penyelesaian: Melepasi Sambungan sebagai Kebergantungan
Untuk menyelesaikan isu ini, anda perlu lulus objek sambungan ke fungsi getPosts() sebagai kebergantungan. Dengan melakukan ini, fungsi boleh mengakses sambungan dan melaksanakan operasi pangkalan data yang diperlukan.
function getPosts(mysqli $con) { // Code to query the database using $con }
Mencegah Ralat Selanjutnya
Untuk meminimumkan isu yang berpotensi, pertimbangkan untuk menggunakan perkara berikut kod untuk mengendalikan ralat sambungan dan membuang pengecualian:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // throw exceptions $con = mysqli_connect("localhost", "xxxx", "xxxx", "xxxxx"); getPosts($con);
Tambahan Petua
Atas ialah kandungan terperinci Mengapa Fungsi `mysqli_query()` Saya Menerima Nilai Null Daripada Objek Sambungan MySQLi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!