Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Amaran PHP: mysql_free_result() menjangkakan parameter 1 sebagai penyelesaian sumber

Amaran PHP: mysql_free_result() menjangkakan parameter 1 sebagai penyelesaian sumber

王林
王林asal
2023-06-22 11:14:481567semak imbas

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?

  1. Analisis Masalah

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.

  1. Penyelesaian

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:

  • Sama ada fungsi mysql_query() digunakan dengan betul untuk menyambung ke pangkalan data dan melaksanakan pernyataan pertanyaan
  • Sama ada set keputusan dikembalikan oleh fungsi mysql_query() digunakan Nilai jenis sumber digunakan sebagai parameter fungsi mysql_free_result()
  • Sama ada hendak berhenti seketika untuk tempoh masa serta-merta selepas fungsi mysql_query() mengembalikan set hasil dan kemudian laksanakan fungsi mysql_free_result() Tempoh masa ini boleh menyebabkan sumber set hasil menjadi tidak sah

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():

  • Cuba elakkan menggunakan fungsi mysql_query() dan pilih fungsi mysqli_query() yang lebih selamat dan stabil atau fungsi prepare() dan execute() PDO
  • Sahkan bahawa fungsi mysql_query() digunakan dengan betul dalam kod dan Semak sama ada nilai pulangan ialah nilai jenis sumber
  • Hanya gunakan fungsi mysql_query() apabila mengesahkan bahawa pernyataan pertanyaan ialah pernyataan SELECT dan lepaskan nilai jenis sumber set hasil yang dikembalikan dalam tepat pada masanya

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!

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