Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah `mysqli_query()` mengembalikan ralat 'Amaran: mysqli_query() menjangkakan parameter 1 adalah mysqli, null given' ralat?
Amaran: Memahami Ralat Parameter mysqli_query()
Apabila menggunakan mysqli_query() dalam PHP, adalah penting untuk memastikan bahawa parameter pertama ialah objek mysqli yang sah mewakili sambungan pangkalan data. Walau bagaimanapun, jika anda menghadapi ralat yang menyatakan "Amaran: mysqli_query() menjangkakan parameter 1 ialah mysqli, null diberikan dalam," ia menunjukkan bahawa parameter pertama yang dihantar kepada fungsi itu bukan objek mysqli.
Memeriksa Kod
Dalam kod yang anda berikan, anda mempunyai fungsi yang dipanggil getPosts(). Fungsi ini cuba menanyakan jadual pangkalan data bernama Blog. Walau bagaimanapun, dalam panggilan mysqli_query() dalam getPosts(), parameter pertama tidak diluluskan secara eksplisit. Akibatnya, PHP menganggap nilai $con, yang diisytiharkan di luar fungsi, sebagai parameter pertama. Tetapi, $con tidak berada dalam skop getPosts() dan dengan itu mengembalikan null.
Menyelesaikan Ralat
Untuk menyelesaikan isu ini, anda mempunyai dua pilihan:
Contoh:
function getPosts(mysqli $con) { // ... same code as before } // Connect to the database $con = mysqli_connect("localhost", "xxxx", "xxxx", "xxxxx"); // Call getPosts() with the connection as a parameter getPosts($con);
Pengesyoran Tambahan
Adalah dinasihatkan untuk mengendalikan sebarang kemungkinan ralat yang mungkin berlaku semasa operasi pangkalan data. Anda boleh mendayakan pelaporan ralat secara eksplisit seperti berikut:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // throw exceptions
Ini akan membuang pengecualian jika berlaku sebarang ralat, membolehkan anda mengambil tindakan yang sewajarnya dalam kod anda.
Atas ialah kandungan terperinci Mengapakah `mysqli_query()` mengembalikan ralat 'Amaran: mysqli_query() menjangkakan parameter 1 adalah mysqli, null given' ralat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!