Mengapa Saya Mendapat "Amaran: mysql_query(): 3 bukan Sumber Pautan MySQL yang Sah"?
"Amaran: mysql_query(): 3 bukan sumber MySQL-Link yang sah" ralat menunjukkan bahawa pembolehubah yang digunakan untuk menyimpan sumber sambungan MySQL adalah tidak sah. PHP menggunakan sumber untuk mewakili objek luaran, setiap satu diberikan id integer yang unik.
Sambungan Pangkalan Data Gagal:
Punca biasa ralat ini ialah sambungan pangkalan data yang gagal. Apabila sambungan gagal, pembolehubah yang sepatutnya mengandungi sumber menjadi batal, membawa kepada ralat "Pembolehubah yang ditentukan bukan sumber MySQL-Link yang sah".
Menggunakan Semula Sambungan:
Fungsi mysql_connect() secara lalai akan menggunakan semula sambungan sedia ada dan bukannya membuat sambungan baharu. Ini boleh menyebabkan masalah jika sambungan sebelumnya ditutup secara tidak dijangka atau jika pangkalan data yang berbeza digunakan pada pelayan yang sama. Melepasi benar kepada parameter $new_link boleh membuat sambungan baharu untuk setiap panggilan ke mysql_connect().
Contoh (Sambungan Gagal):
<code class="php">$link = mysql_connect('localsoth','baduser','badpass'); // failed connection $result = mysql_query("SELECT 1", $link); // throws error</code>
Contoh (Sambungan Digunakan Semula):
<code class="php">$link1 = mysql_connect('localhost','user','pass'); // resource id 1 $link2 = mysql_connect('localhost','user','pass'); // reuse resource id 1 mysql_close($link2); // closes resource id 1 mysql_query("SELECT 1", $link1); // fails due to closed connection</code>
Penyelesaian:
Untuk menyelesaikan ralat ini, pastikan sambungan pangkalan data diwujudkan dan kekal terbuka sepanjang keseluruhan pelaksanaan skrip. Elakkan daripada menutup sambungan lebih awal dan pertimbangkan untuk menggunakan sambungan MySQLi atau PDO dan bukannya sambungan MySQL yang lebih lama.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat \'Amaran: mysql_query(): 3 bukan Sumber Pautan MySQL yang Sah\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!