我已经在 SO 和 Google 上进行了彻底的搜索,试图解决这个问题,但一直没能解决。我正在代码的某个部分执行 INSERT,PHP 立即使插入失败,报告“MySQL 服务器已消失”。尽管有此通知,MySQL 服务器仍对所有其他操作正常响应。其他插入工作正常,如果我手动运行完全相同的查询,它会毫无问题地运行并插入数据。MySQL 是 5.5.30 版,PHP 是 5.4.6 版。插入查询如下:
INSERT INTO orders
SET userID = '80'
, billing_addr = 'test_addr'
, shipping_addr = 'test_addr'
, ship_instructions = ''
, shipping = 0
, user_comments = ''
, tax = 0
, total = 0
, admin_comments = ''
, source_id = 13
, billing_profile_id = 32
, recurring = 'No'
, total_raw_product_cost = 0
, total_network_payout = 0
, shipping_code = ''
我重新启动了 Apache,重新启动了 MySQL,检查了表没有崩溃。当此查询失败时,没有信息发送到 MySQL 日志。
PHP 是一个基本查询,但为了完整起见,我将其包含在此处。
if( db_query($sql) )
{
// do happy stuff because it worked
}
else
{
die("ERROR: UNABLE TO SAVE ORDER DATA <!-- (" . $db_error . ") [" . $sql . "]-->");
}
编辑:
我有另一个数据库服务器可以在相同的设置下正常工作。我试过匹配my.cnf
文件并重新启动,但没有效果。我能看到的工作数据库服务器和非工作数据库服务器之间的唯一区别是工作数据库服务器的版本是 5.0.77 而不是 5.5.30。