Amaran PHP: mysql_free_result() menjangkakan parameter 1 sebagai penyelesaian sumber
Apabila menggunakan PHP untuk menyambung ke pangkalan data MySQL, set hasil yang diperoleh dengan melaksanakan pernyataan pertanyaan perlu dikeluarkan menggunakan fungsi mysql_free_result( ) untuk mengelakkan kebocoran ingatan. Tetapi kadangkala kita menemui mesej ralat ini: Amaran PHP: mysql_free_result() menjangkakan parameter 1 menjadi sumber. Apa masalahnya? Bagaimana untuk menyelesaikannya?
Mari kita analisis dahulu maksud mesej ralat ini: mysql_free_result() menjangkakan parameter pertama yang dihantar sebagai nilai jenis sumber. Apakah jenis sumber? Dalam PHP, menggunakan fungsi mysql_query() untuk melaksanakan pernyataan pertanyaan akan mengembalikan nilai jenis sumber set hasil. Dalam erti kata lain, nilai pulangan bagi fungsi mysql_query(), iaitu nilai jenis sumber set hasil, hendaklah dihantar dalam parameter pertama yang dihantar ke dalam fungsi mysql_free_result().
Jika kami menemui mesej ralat ini, ini bermakna bahawa parameter yang betul tidak dihantar dalam parameter pertama yang dihantar ke dalam fungsi mysql_free_result() Parameter ini sepatutnya merupakan jenis sumber set hasil yang dikembalikan oleh mysql_query() nilai fungsi. Oleh itu, mesej ralat ini mengingatkan kita bahawa kita perlu menyemak sama ada fungsi mysql_query() digunakan dengan betul dalam kod dan mengesahkan bahawa nilai pulangannya sememangnya nilai jenis sumber.
Untuk menyelesaikan masalah ini, kita perlu bermula dari dua aspek: satu ialah menyemak kod, dan satu lagi adalah untuk memahami spesifikasi penggunaan mysql_query() fungsi.
2.1 Semak kod
Apabila menyemak kod, kita perlu mencari fungsi mysql_query() dan fungsi mysql_free_result() dan sama ada parameter yang dihantar antara kedua-dua fungsi ini adalah betul. Jika terdapat masalah dengan parameter yang diluluskan, ralat akan dilaporkan. Kita perlu mengesahkan perkara berikut dalam kod:
Jika tiada masalah dengan mata di atas, kemungkinan keputusan ditetapkan. sumber yang dikembalikan oleh fungsi mysql_query() adalah tidak sah Pada masa ini, kita perlu memerhati dengan teliti spesifikasi penggunaan fungsi mysql_query().
2.2 Fahami spesifikasi penggunaan fungsi mysql_query()
Perkara pertama yang perlu diperhatikan ialah fungsi mysql_query() telah ditamatkan selepas PHP 5.5.0 dan telah ditamatkan selepas PHP 7.0.0 . Pada masa ini disyorkan untuk menggunakan fungsi mysqli_query() atau fungsi prepare() dan execute() PDO sebagai gantinya. Oleh itu, kita perlu berhati-hati apabila menggunakan fungsi mysql_query() untuk cuba mengelakkan masalah, atau gunakan fungsi mysqli_query() yang lebih selamat dan stabil atau fungsi prepare() dan execute() PDO.
Kedua, perlu diingatkan bahawa nilai jenis sumber set hasil yang dikembalikan oleh fungsi mysql_query() hanya sah apabila fungsi dipanggil, dan hanya apabila pernyataan pertanyaan bukan pernyataan SELECT, bukan- nilai jenis sumber akan dikembalikan. Oleh itu, kita perlu mengesahkan sama ada fungsi mysql_query() digunakan dengan betul dalam kod dan semak sama ada nilai yang dikembalikan ialah nilai jenis sumber.
Akhir sekali, apa yang anda perlu tahu ialah nilai jenis sumber set hasil yang dikembalikan oleh fungsi mysql_query() akan dikeluarkan secara automatik selagi fungsi mysql_query() dilaksanakan. Oleh itu, jika kita melaksanakan fungsi mysql_free_result() sejurus selepas fungsi mysql_query() mengembalikan set hasil, ralat jenis parameter akan berlaku.
Ringkasnya, untuk mengelakkan ralat PHP Amaran: mysql_free_result() menjangkakan parameter 1 sebagai sumber, kita perlu memberi perhatian kepada perkara berikut apabila menggunakan fungsi mysql_query():
Ringkasnya, apabila menggunakan PHP untuk menyambung ke pangkalan data MySQL, kita perlu memberi perhatian untuk mematuhi spesifikasi, mengelakkan ralat, dan memastikan ketepatan dan kestabilan kod.
Atas ialah kandungan terperinci Amaran PHP: mysql_free_result() menjangkakan parameter 1 sebagai penyelesaian sumber. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!