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

  • Автор темы Автор темы Pavel6
  • Дата начала Дата начала

Pavel6

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

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

приведи пример кода, которым ты проверял данный пример.
тестового кода, не более 10 строчек.
вот текущее значение ячейки, вот обновление, вот вывод настоящего.
вперёд.
 
Автор оригинала: Фанат
нет. от большого колличества запросов 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);
 
Pavel6
В вашем сообщении не хватает следующих данных:
вот текущее значение ячейки, вот обновление, вот вывод настоящего.
Для того чтобы определить текущее значение нужно сделать еще один запрос. и потом нужно сделать еще один запрос, чтобы определить а что стало с этой ячейкой.
 
судя по всему, он этих данных и не предоставит, поскольку значение меняется случайным образом, и не воспроизводится
 
Вообщето не хватает еще информации о версии Mysql (вдруг это какая-то известная бага старой версии), а также не хватает информации о том, как другие запросы меняют это поле.
 
Сверху