Mengapa Saya Mendapat Ralat \'Amaran: mysql_query(): 3 bukan Sumber Pautan MySQL yang Sah\'?

Linda Hamilton
Lepaskan: 2024-11-01 22:29:02
asal
656 orang telah melayarinya

Why Am I Getting the

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

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

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!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!