Php mysql表的间歇性插入失败

Php mysql表的间歇性插入失败,php,mysql,insert,Php,Mysql,Insert,简单的php/mysql插入,例如 mysql_queryINSERT到分派值'1234','$name','$address' 间歇性地失败。我已经将它设置为在发生时陷阱,并将用户放回具有重新填充的数据的表单,以便他们可以重试,但是一旦失败,它将永远不会插入。我试着重新建立连接,创建一个新的连接,我完全不知所措。有人有什么想法吗 更新 描述调度结果 编辑以添加: 我找到了。我的第一个暗示是。显然,MySQL 5.1.49在使用Ubuntu服务器时,与Debian结合使用时存在一些稳定性问题。在

简单的php/mysql插入,例如

mysql_queryINSERT到分派值'1234','$name','$address'

间歇性地失败。我已经将它设置为在发生时陷阱,并将用户放回具有重新填充的数据的表单,以便他们可以重试,但是一旦失败,它将永远不会插入。我试着重新建立连接,创建一个新的连接,我完全不知所措。有人有什么想法吗

更新

描述调度结果

编辑以添加:


我找到了。我的第一个暗示是。显然,MySQL 5.1.49在使用Ubuntu服务器时,与Debian结合使用时存在一些稳定性问题。在此提示后进一步搜索描述了一些非常类似的情况。目前,我正在重新配置和安装MySQL 5.0.51。希望这将有助于停止胡说八道:


谢谢大家的帮助

是否使用到数据库的持久连接?可能问题在于数据库的连接方法,而不是实际的INSERT语句。你检查过你的MYSQL/SYS日志了吗

为了澄清,通常您的MYSQL日志将位于/var/log/MYSQL或相关区域。此示例适用于linux debian系统,但会因您的系统而异


这是最不让你看到是否有任何mysql错误,即资源耗尽等

您可能需要试试这个

将字段名放入查询中:

mysql_query("INSERT INTO dispatch(ticketnum,callername,...) VALUES('1234',$name,$address)");
我假设$name和$address是变量。从上面的查询中,将字段名与要插入的值对齐。就像我在这里所做的那样,肯定不会起作用,因为int11和字符串类型不匹配,ticketnum是自动生成的值,请根据需要进行相应更改


创建一个存储过程,这将使事情变得简单。

我找到了它。我的第一个暗示是。显然,MySQL 5.1.49在使用Ubuntu服务器时,与Debian结合使用时存在一些稳定性问题。在此提示后进一步搜索描述了一些非常类似的情况。目前,我正在重新配置和安装MySQL 5.0.51。希望这将有助于停止胡说八道:


谢谢大家的帮助

也许你违反了一个独特的约束?不知道怎么做,我没有得到任何错误,除了mysql\u受影响的\u行向我保证它没有插入。你能给我们看一下descripe dispatch的输出吗?ticketnum int11 NO PRI自动增量callername tinyblob NO callerphone tinyblob YES request longblob YES clientname tinyblob NO callcounty varchar30 YES clientphone tinyblob YES dispatcher varchar30否已调度varchar3否rectime datetime否dispatchtime datetime YES time ToDispatch time YES worker varchar30 YES restime datetime NO TimeToRestores time NO resolution varchar120 NO notes longblob YES recordnum varchar15 YES dob date YES我对您的插入感到困惑。您似乎将一个固定值放入ticketnum,这是一个自动递增的字段。此外,您正在将名为$address的变量的值放入callerphone。。。这就是你想要做的吗?不使用持久连接,只使用错误日志,不知道在哪里可以找到MYSQL/SYS日志..我以前从未深入研究过它好的,是的,我检查过那里的日志,没有什么异常..最后一次重新启动,准备好连接,就是这样。从那以后就发生了这种情况。我上周确实试过了。这没什么区别。但不是存储过程。但是,即使我还没有使用存储过程,也不应该出现间歇性故障。您能否更清楚地说明要将值插入哪些字段。然后确保其他字段都有默认值..嗯,就是这样,我一个接一个地检查了所有字段,检查了默认值和我的插入变量,并尝试加载不同的插入值,以确保这不是我自己的消毒或任何其他原因造成的。这真的很奇怪,我不可能是唯一一个有这个问题的人。我开始想可能是什么东西损坏了,或者服务器需要重新安装,或者天知道什么。我想下一件事我必须尝试的是把整个东西放在另一台机器上,看看它是否是硬件。它几乎像是断开了连接。
mysql_query("INSERT INTO dispatch(ticketnum,callername,...) VALUES('1234',$name,$address)");