Rumah > Artikel > pangkalan data > Mengapakah PHP Saya Menunjukkan \"Amaran: mysql_query(): 3 bukan Sumber Pautan MySQL yang sah\"?
Menyingkap Enigma "Amaran: mysql_query(): 3 is not a valid MySQL-Link Resource" Ralat
The infamous " Amaran: mysql_query(): 3 bukan sumber MySQL-Link yang sah" sering membingungkan pembangun, mendorong mereka untuk merenungkan kepentingan "3" yang misterius. Mari kita rungkai enigma dan selidiki punca asas ralat ini.
Pada terasnya, PHP menggunakan sumber sebagai pengecam unik untuk pautan ke entiti luaran, termasuk fail dan sambungan pangkalan data. Setiap sumber diberikan ID integer, menyediakan cara untuk menjejak dan mengurus entiti luaran ini.
Sambungan Pangkalan Data Gagal
Penyebab biasa ralat ini ialah pangkalan data yang gagal sambungan. Seperti yang dinyatakan oleh Dan Breen, jika percubaan sambungan gagal, anda mungkin menghadapi ralat "Pembolehubah yang ditentukan bukan sumber MySQL-Link yang sah". Ini berlaku apabila pembolehubah yang bertujuan untuk menahan sumber kekal batal.
Memeriksa mesej ralat dan ID sumber khususnya mungkin menunjukkan penutupan sambungan pangkalan data yang tidak dijangka. Program anda mungkin masih mempunyai pembolehubah yang mengandungi ID sumber, tetapi sambungan luaran tidak lagi wujud. Ini mungkin berpunca daripada panggilan mysql_close() eksplisit atau ralat pangkalan data luaran yang menamatkan sambungan.
Kepentingan Penggunaan Semula Sambungan
Aspek yang perlu diberi perhatian bagi sambungan mysql dengan mysql_connect() ialah tingkah laku lalainya menggunakan semula sambungan sedia ada dengan parameter yang sama. Untuk mengelakkan tingkah laku ini, hantar benar kepada parameter $new_link secara eksplisit. Ini memastikan bahawa setiap permintaan sambungan menghasilkan ID sumber baharu.
Alternatif Disyorkan
Walaupun sambungan mysql telah memenuhi tujuannya, pertimbangkan untuk menggunakan sambungan MySQLi atau PDO untuk interaksi pangkalan data. Antara muka moden ini menawarkan ciri yang dipertingkatkan dan menangani batasan sambungan mysql yang lebih lama.
Atas ialah kandungan terperinci Mengapakah PHP Saya Menunjukkan \"Amaran: mysql_query(): 3 bukan Sumber Pautan MySQL yang sah\"?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!