Cara Menyelesaikan Ralat "MySQL Server Has Gone Away" dalam Gelung PDO
Dalam senario yang melibatkan skrip berasaskan PDO yang melaksanakan gelung daripada pernyataan yang disediakan, telah ditemui bahawa pelaksanaan gagal dengan "pelayan MySQL telah pergi jauh" kesilapan. Memahami punca asas dan melaksanakan penyelesaian adalah penting untuk mengekalkan integriti skrip.
Ralat biasanya timbul apabila paket yang dihantar ke pelayan melebihi saiz paket maksimum yang dibenarkan. Ini boleh berlaku apabila data BLOB (Binary Large OBject) yang besar cuba untuk dimasukkan.
Untuk menentukan punca masalah, periksa kedua-dua mesej ralat bahagian klien dan pelayan adalah disyorkan. Di sebelah klien, mesej ralat yang disebutkan di atas dipaparkan, manakala log pelayan mungkin menunjukkan "Ralat 1153 Mendapat paket lebih besar daripada bait 'max_allowed_packet'."
Resolusi melibatkan pelarasan nilai max_allowed_packet dalam my.ini fail untuk menampung saiz BLOB terbesar. Nilai ini harus ditetapkan dengan sewajarnya, memastikan ia lebih besar daripada mana-mana sisipan BLOB yang dijangkakan.
Sebagai contoh, entri berikut dalam my.ini menetapkan saiz paket maksimum kepada 200 megabait:
[mysqld] ... max_allowed_packet = 200M ...
Dengan melaksanakan perubahan ini, skrip harus berjaya melaksanakan gelung pernyataan yang disediakan tanpa menemui "pelayan MySQL telah hilang" kesilapan.
Atas ialah kandungan terperinci Mengapa Gelung PDO Saya Membuang Ralat 'Pelayan MySQL Telah Pergi'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!