Các tập lệnh của tôi trở nên khá khó khăn với các quy trình được chia nhỏ trong nhiều chức năng khác nhau. Bất cứ khi nào pcntl_fork()
được gọi, tất cả các kết nối MySQL đều bị mất. Nếu tôi chạy truy vấn trên kết nối PDO MySQL, tôi gặp lỗi "MySQL server has gone away"
.Làm cách nào để kiểm tra kết nối PDO MySQL bị lỗi TRƯỚC KHI tôi chạy truy vấn?
Vấn đề là lỗi này chỉ hiển thị trong PDO::errorinfo()
sau khi thực hiện truy vấn không thành công. Tôi muốn có thể phát hiện nếu máy chủ MySQL "đã biến mất" trước khi tôi thử chạy truy vấn. Bằng cách đó tôi có thể tạo ra một wrapper PDO tạo ra một kết nối mới cho tôi trong những tình huống như vậy.
Bất kỳ ý tưởng nào?
Điều gì về việc khắc phục sự cố gây ra lỗi đó? Bạn cần phải chữa bệnh, không chỉ che giấu các triệu chứng. – zerkms
Không phải là nguyên nhân gây ra lỗi không? Điều đó không có nghĩa là tôi ** có ** để tạo một kết nối mới mỗi khi tôi ngã ba? – Hubro
Rèn là rất có thể là nguyên nhân của vấn đề. Lý tưởng nhất, bạn nên ngã ba đầu tiên và sau đó mở một kết nối. Nếu điều đó là không thể, bình luận này trong tài liệu có thể giúp: http://php.net/manual/en/function.pcntl-fork.php#70721 Xem thêm [MySQL server đã biến mất] (http: // dev .mysql.com/doc/refman/5.5/en/gone-away.html) - cụ thể là dòng giới thiệu. – Mike