PHP mysqli_query() 报 Broken pipe 错误如何解决?
php mysqli_query() 报 broken pipe 错误的解决方法
在执行 php 脚本时,你可能遇到类似"mysqli_query(): send of 309 bytes failed with errno=32 broken pipe"这样的错误。这表示 php 脚本与 mysql 服务器之间的连接在长时间无操作后被关闭了。
解决此问题的关键在于修改 mysql 服务器的wait_timeout参数,该参数指定非交互式连接在无活动后多久会被关闭。你可以将其设为更大的值,例如:
set wait_timeout = 600;
此外,你还可以使用 mysqli_ping() 函数定期检查连接是否仍然有效,并根据需要重新连接。修改后的代码示例如下:
<?php $conn = mysqli_connect($host, $user, $password, $database);if (!mysqli_ping($conn)) { // 断开连接 mysqli_close($conn); // 重新连接 $conn = mysqli_connect($host, $user, $password, $database);}
通过调整wait_timeout参数和定期检查连接,你应该能够避免遇到 broken pipe 错误。
立即学习“PHP免费学习笔记(深入)”;