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
Lepaskan: 2024-12-15 00:58:17
asal
338 orang telah melayarinya

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
}
Salin selepas log masuk

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);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan