Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah `mysqli_query()` Mengembalikan 'menjangkakan parameter 1 menjadi mysqli, null diberikan'?

Mengapakah `mysqli_query()` Mengembalikan 'menjangkakan parameter 1 menjadi mysqli, null diberikan'?

Linda Hamilton
Linda Hamiltonasal
2024-12-15 00:58:17342semak imbas

Why Does `mysqli_query()` Return

Amaran: mysqli_query() menjangkakan parameter 1 adalah mysqli, null diberikan

Ralat ini timbul apabila cuba melaksanakan pertanyaan MySQL menggunakan mysqli_query (), tetapi parameter yang disediakan untuk objek sambungan bukanlah objek MySQLi yang sah. Fungsi mysqli_query() menjangkakan parameter pertama sebagai contoh kelas mysqli.

Dalam coretan kod yang disediakan, ralat mungkin disebabkan oleh sebab berikut:

Isu Skop

Objek sambungan mysqli $con, yang diisytiharkan dalam global skop, tidak boleh diakses dalam fungsi getPosts(). Ini menyebabkan nilai nol dihantar sebagai parameter pertama kepada mysqli_query(), yang membawa kepada ralat.

Penyelesaian:

Untuk menyelesaikan isu ini, anda boleh secara eksplisit lulus objek sambungan ke fungsi getPosts() sebagai parameter. Berikut ialah kod yang diubah suai:

function getPosts(mysqli $con) {
    $query = mysqli_query($con, "SELECT * FROM Blog");
    // ... Rest of the code remains the same
}

Sekarang, apabila anda memanggil fungsi getPosts(), pastikan anda menghantar objek sambungan sebagai hujah.

Selain itu, ia merupakan amalan yang baik untuk mendayakan pelaporan ralat dan mengendalikan isu sambungan pangkalan data dengan anggun. Berikut ialah contoh:

// Enable error reporting
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

// Establish database connection
$con = mysqli_connect("localhost", "xxxx", "xxxx", "xxxxx");

// Check connection status
if (!$con) {
    throw new Exception('Failed to connect to MySQL: ' . mysqli_connect_error());
}

// Call the getPosts() function with the connection object
getPosts($con);

Atas ialah kandungan terperinci Mengapakah `mysqli_query()` Mengembalikan 'menjangkakan parameter 1 menjadi mysqli, null diberikan'?. 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