Rumah > pembangunan bahagian belakang > tutorial php > Mengapa Fungsi `mysqli_query()` Saya Menerima Nilai Null Daripada Objek Sambungan MySQLi?

Mengapa Fungsi `mysqli_query()` Saya Menerima Nilai Null Daripada Objek Sambungan MySQLi?

Mary-Kate Olsen
Lepaskan: 2024-12-28 00:26:10
asal
849 orang telah melayarinya

Why Does My `mysqli_query()` Function Receive a Null Value Instead of a MySQLi Connection Object?

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

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

Tambahan Petua

  • Gunakan Objek mysqli Secara Terus: Elakkan menggunakan mysqli_query() dan pilih kaedah objek mysqli secara langsung, seperti $con->query().
  • Kendalikan Pengecualian: Ingat untuk mengendalikan pengecualian yang dilemparkan oleh objek mysqli menggunakan blok try...catch untuk memberikan mesej ralat yang bermakna.
  • Buang Sambungan: Setelah anda selesai dengan sambungan, tutupnya menggunakan $con ->kaedah tutup() untuk melepaskan sumber.

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!

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