Bạn đặt wait_timeout
đến 1 rồi bạn ngủ 3, điều gì sẽ xảy ra? MySql sẽ đóng kết nối sau một giây và bạn sẽ gặp lỗi "Máy chủ Mysql đã biến mất" với câu lệnh tiếp theo 'khiến bạn ngủ trong 3 giây.
http://dev.mysql.com /doc/refman/5.1/en/server-system-variables.html#sysvar_wait_timeout
chỉnh sửa
Câu hỏi trùng lặp với Lỗi MySQL 2006:mysql máy chủ đã biến mất
chỉnh sửa 2
Nguyên nhân của lỗi này:
- thời gian chờ đợi thấp - giải pháp:ping, kết nối lại hoặc tăng nó lên
- gói lớn - giải pháp:tune
max_allowed_packet
trong my.cfg
Kết nối lại PDO - mô phỏng ping trong PDO Làm cách nào để ping db MySQL và kết nối lại bằng PDO
chỉnh sửa 3 câu hỏi được cập nhật
Cách duy nhất (afaik) để loại bỏ những cảnh báo này là đặt dự kiến (ví dụ:E_ERROR) error_reporting mức độ. Ví dụ, bạn có thể gói các lệnh gọi pdo để đặt E_ERROR trước và đặt lại về mặc định sau khi thực thi.
PDO ghi nhật ký các cảnh báo / lỗi cho mục đích nhật ký (sic!) Để phân tích thêm. Thuộc tính bạn đặt (bằng setAttribute hoặc constructor) chỉ thay đổi việc xử lý lỗi / hành vi của pdo - throw hoặc not :). Hai thứ này được tách biệt.