Поле MySQL int сбрасывается автоматически в счетчике посещений DGNews

Я использую настроенную версию сценария DGNews (теперь уже не существующую) на моем сайте. В этом скрипте есть простой метод подсчета количества попаданий:

$queryfull = "SELECT * FROM news_publish WHERE id='$newsid'";
$qryfull = @mysql_query($queryfull,$connect) or die ("Wrong Query");
$rowfull = mysql_fetch_array ($qryfull);

$c=$rowfull[click];
$c++;
$d=$c;
@mysql_query("update news_publish set click='$d' where id=$newsid");

Я знаю, что этот скрипт использует устаревшие методы запросов MySQL, и в настоящее время я не в состоянии выполнить полное обновление.
Но моя проблема в том, что поле ‘click’ (int) во всех строках базы данных время от времени сбрасывается в 1. Я не могу понять, как это происходит. Это происходит только один раз в год или около того. Это результат какой-то попытки MySQL инъекции или что-то? Может кто-нибудь выяснить, что здесь происходит?

благодарю вас

ОБНОВИТЬ
Сбрасывает указанное поле на ВСЕ строки, а не в одну строку


0

Решение

$queryfull = "SELECT * FROM news_publish WHERE id='$newsid'";
$qryfull = @mysql_query($queryfull,$connect) or die ("Wrong Query");
$rowfull = mysql_fetch_array ($qryfull);

$c=$rowfull['click'];
$d=$c++;
@mysql_query("update news_publish set click='$d' where id=$newsid");

Но вы можете запустить только запрос на обновление, как предложено Barmar в комментариях

@mysql_query("update news_publish set click=click+1 where id=$newsid");

И это все

0

Другие решения

Я не могу точно знать, где происходит переполнение, но это поможет вам.

alter news_publish modify click bigint

bigint намного больше, чем int.

0

По вопросам рекламы [email protected]