Сложение двух полей

Pavel6

Новичок
Сложение двух полей

Есть в таблицы поле n_com типа INT(10). SQL запрос обновляет это значения путем n_com= n_com+1
Т.е. update TABLE set n_com= n_com+1 where id=20
В большинстве случаев сложение верное, но иногда это значение заполняется цифрами вообще непонятными 4567891230, вроде бы запрос был один а значение вылазит такое.
Подскажите пожалуйста из-за чего может возникать такая проблема.
 

phprus

Moderator
Команда форума
Pavel6
Может быть поле n_com переполняется? Попробуй отследить какое значение было в нем до запроса и после.
 

Фанат

oncle terrible
Команда форума
Pavel6
так трудно привести реальный пример?
значение было такое-то
увеличил на столько-то
получил вот такое.
 

Pavel6

Новичок
Автор оригинала: Фанат
Pavel6
так трудно привести реальный пример?
значение было такое-то
увеличил на столько-то
получил вот такое.
к примеру равно 8
прибавил 1 при помощи Mysql и все, поле заполнено цифрами.
А может быть такое, что из-за большого колличества запросов sql просто запутается, и запихивает такие цифры
 

Фанат

oncle terrible
Команда форума
нет. от большого колличества запросов sql не путается.

приведи пример кода, которым ты проверял данный пример.
тестового кода, не более 10 строчек.
вот текущее значение ячейки, вот обновление, вот вывод настоящего.
вперёд.
 

Pavel6

Новичок
Автор оригинала: Фанат
нет. от большого колличества запросов sql не путается.

приведи пример кода, которым ты проверял данный пример.
тестового кода, не более 10 строчек.
вот текущее значение ячейки, вот обновление, вот вывод настоящего.
вперёд.
Вот запрос $query='update forum_topic set last_visit="'.time().'", comments=comments+1, id_lcomment="'.$inserted_id.'" where id="'.$input['comment_id'].'"';
Поле comments периодически заполняется цифрами

PHP:
$tmp_query='select next_comment, id from forum_comment_06 where id='.$left_link;

$tmp_result=$DS->query($tmp_query);
$tmp_row=$tmp_result[0];
$was_link=$tmp_row['next_comment'];

$insert_result = $DS->query($insert_query);
$inserted_id=mysql_insert_id();

$insert_query='update forum_comment_06 set next_comment='.$was_link.' where id='.$inserted_id;
$insert_result=$DS->query($insert_query);
$insert_query='update forum_comment_06 set next_comment='.$inserted_id.' where id='.$tmp_row['id'];
$insert_result=$DS->query($insert_query);

//$query='update forum_topic set last_visit="'.time().'", is_showable=1, comments=comments+1, id_lcomment="'.$inserted_id.'" where id="'.$input['comment_id'].'"';
print $query='update forum_topic set last_visit="'.time().'",  comments=comments+1, id_lcomment="'.$inserted_id.'" where id="'.$input['comment_id'].'"';
$result=$DS->query($query);
 

phprus

Moderator
Команда форума
Pavel6
В вашем сообщении не хватает следующих данных:
вот текущее значение ячейки, вот обновление, вот вывод настоящего.
Для того чтобы определить текущее значение нужно сделать еще один запрос. и потом нужно сделать еще один запрос, чтобы определить а что стало с этой ячейкой.
 

Фанат

oncle terrible
Команда форума
судя по всему, он этих данных и не предоставит, поскольку значение меняется случайным образом, и не воспроизводится
 

phprus

Moderator
Команда форума
Вообщето не хватает еще информации о версии Mysql (вдруг это какая-то известная бага старой версии), а также не хватает информации о том, как другие запросы меняют это поле.
 
Сверху