2011-01-13 2 views
1

Простой PHP/MySQL INSERT, такие какПрерывистый отказ INSERT для таблицы тузд

mysql_query("INSERT INTO dispatch VALUES('1234','$name','$address')");

периодически выходит из строя. Я установил его для ловушки, когда это произойдет, и верните пользователя обратно в форму с повторно заполненными данными, чтобы они могли попробовать еще раз, однако, как только он потерпит неудачу, он никогда не будет вставляться. Я попытался восстановить соединения, создав новое соединение, здесь у меня полная потеря. У кого-нибудь есть идеи?

UPDATE

Результат DESCRIBE dispatch

ticketnum int(11) NO PRI auto_increment 
callername tinyblob NO 
callerphone tinyblob YES 
request longblob YES 
clientname tinyblob NO 
callcounty varchar(30) YES 
clientphone tinyblob YES 
dispatcher varchar(30) NO 
dispatched varchar(3) NO 
rectime datetime NO 
dispatchtime datetime YES 
timetodispatch time YES 
worker varchar(30) YES 
restime datetime NO 
timetores time NO 
resolution varchar(120) NO 
notes longblob YES 
recordnum varchar(15) YES 
dob date YES 

отредактирован ADD:

Я нашел его. Мой первый намек был here. По-видимому, MySQL 5.1.49 имеет некоторые проблемы с устойчивостью в сочетании с Debian (я использую Ubuntu Server). Дальнейший поиск после этого намека описывает некоторые очень похожие ситуации. В настоящее время я переконфигурирую и устанавливаю MySQL 5.0.51. Надеюсь, это поможет положить конец бессмыслице :)

Спасибо вам всем за помощь!

+0

Возможно, вы нарушаете уникальное ограничение? –

+0

Не вижу, как и я не получаю ошибок, за исключением того, что mysql_affected_rows() уверяет меня, что это не вставка. – Elq

+0

Можете ли вы показать нам вывод 'DESCRIBE dispatch'? –

ответ

0

Я нашел его. Мой первый намек был here. По-видимому, MySQL 5.1.49 имеет некоторые проблемы с устойчивостью в сочетании с Debian (я использую Ubuntu Server). Дальнейший поиск после этого намека описывает некоторые очень похожие ситуации. В настоящее время я переконфигурирую и устанавливаю MySQL 5.0.51. Надеюсь, это поможет положить конец бессмыслице :)

Спасибо вам всем за помощь!

0

Вы используете постоянные соединения с БД? Возможно, проблема заключается в методе подключения к вашей базе данных, а не в действительном заявлении INSERT. Вы проверили журналы MYSQL/SYS?

Чтобы уточнить, как правило, ваш журнал MYSQL будет находиться в /var/log/mysql или связанной области (этот пример для системы debian linux, будет отличаться для вашей системы).

Это, по крайней мере, позволяет увидеть IF есть ошибки mysql, то есть исчерпаны ресурсы и т. Д .;

+0

не использует постоянные соединения, просто журнал ошибок, не знаю, где найти журналы MYSQL/SYS. Мне никогда не приходилось вникать в это до – Elq

+0

Хорошо, да, я проверил журнал там, и ничего нет из обычного ... последнего перезапуска, готового к соединениям, вот и все. и это произошло с тех пор. – Elq

0

Вам может понадобиться, чтобы попробовать это

поставить свое имя поля в запросе:

mysql_query("INSERT INTO dispatch(ticketnum,callername,...) VALUES('1234',$name,$address)"); 

Я предполагаю, что $ имя и $ адрес являются переменными. из этого запроса выровняйте имена полей со значениями, которые вы хотите вставить. как так, как я здесь работать не будет точно, потому что ты есть int(11) and String type mismatch, ticketnum будет автоматически сгенерирован значение, изменить соответствующим образом, чтобы соответствовать своих потребностей ...

создать хранимую хранимую процедуру, которая будет делать вещи легко ..

+0

Я пробовал это, на прошлой неделе. Это не имело значения. Однако не хранимая процедура. Тем не менее, я не должен получать прерывистый сбой, даже если я еще не использую хранимую процедуру. – Elq

+0

вы можете сделать более понятным, в какие поля вы хотите вставить значения. И затем убедитесь, что другие поля имеют значение по умолчанию. – tkt986

+0

хорошо, это то, что я прошел через все поля один за другим, проверял значения по умолчанию и мои переменные вставки и пытался загружать разные значения вставки, чтобы быть уверенным, что это wasn моя собственная дезинфекция или что-то еще, вызывающее ее. Это действительно странно, и я не могу быть единственным, у кого была эта проблема. Я начинаю думать, может быть, что-то повреждено или сервер нуждается в переустановке, или бог знает, что ... Я думаю, что следующее, что мне нужно будет попробовать помещает все это на другой компьютер, чтобы увидеть, является ли это аппаратным обеспечением .. он почти действует так, как будто соединение отбрасывается. – Elq

Смежные вопросы