Memahami "Amaran: mysqli_query() menjangkakan parameter 1 adalah MySQLi, null diberikan dalam" Ralat
Dalam percubaan anda untuk mencipta tersuai CMS, anda mengalami mesej ralat berikut:
"Amaran: mysqli_query() menjangkakan parameter 1 adalah MySQLi, null diberikan dalam"
Punca Ralat
Ralat ini menunjukkan bahawa fungsi mysqli_query(), yang melaksanakan pertanyaan SQL , mengharapkan objek MySQLi sebagai parameter pertamanya. Walau bagaimanapun, dalam fungsi getPosts() anda, anda menghantar nilai nol dan bukannya objek MySQLi.
Penyelesaian
Penyelesaian kepada isu ini adalah untuk memastikan bahawa Objek $con MySQLi berada dalam skop fungsi getPosts(). Dalam kod anda, $con ditakrifkan dalam skop global, tetapi ia tidak boleh diakses dalam fungsi.
Meluluskan Objek MySQLi sebagai Kebergantungan
Salah satu cara untuk alamat ini adalah untuk menghantar objek MySQLi ke fungsi getPosts() sebagai kebergantungan. Begini cara anda boleh melakukannya:
function getPosts(mysqli $con) { // etc }
Dengan menjadikan objek MySQLi sebagai parameter fungsi, anda memastikan ia tersedia dalam skop fungsi dan boleh digunakan oleh mysqli_query().
Syor Tambahan
Selain menyelesaikan isu skop, pertimbangkan untuk melaksanakan pengesyoran berikut:
Berikut ialah contoh cara untuk melaksanakan pengesyoran ini:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // throw exceptions $con=mysqli_connect("localhost","xxxx","xxxx","xxxxx"); if (!$con) { throw new Exception("Failed to connect to MySQL: " . mysqli_connect_error()); } getPosts($con);
Dengan melaksanakan pengesyoran ini, anda boleh memastikan keteguhan dan kebolehpercayaan CMS tersuai anda.
Atas ialah kandungan terperinci Mengapakah `mysqli_query()` Mengembalikan 'Amaran: mysqli_query() menjangkakan parameter 1 adalah MySQLi, batal diberikan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!