Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как сохранить измененную переменную назад в базу mysql?

Феоген Трофимов Ученик (85), на голосовании 3 года назад
Как сохранить измененную переменную назад в базу mysql?
Сейчас код такой:
<? $db = подключение к бд;

$sql = "SELECT * FROM statanew";
$result = $db->query($sql);
$articles = $result->fetchAll(PDO::FETCH_ASSOC);

foreach ($articles as $article) {
$update = $article['count'];

}
@$update++;

?>
Код должен после захода на страницу, просто прибавлять к переменной +1 (что он уже и делает) и возвращать назад в таблицу, этого не происходит
Голосование за лучший ответ
dim565 Искусственный Интеллект (424764) 3 года назад
В этом коде нет сохранения в таблицу, либо делайте отдельный запрос UPDATE, либо если не планируете использовать данные из SELECT где-нибудь дальше в коде, можно переделать на запрос UPDATE statanew SET count = count + 1
ewe 2e¶ CoЛнЫшКоcBeTиТоЧеНЬяРкО*Высший разум (329729) 3 года назад
Можно у вас проконсультироваться?
Если не влом и если знаете.
А если таких запросов будет много в один момент времени? например, изначально было значение 1 и между моментом чтения переменной и моментом update её обратно произошло еще 100 других updates и истинное значение ее стало 102, но этот экземпляр скрипта об это не знает и напишет туда значение просто 2, вместо 103, как оно по его мнению должно быть.
Это ж неправильно?
Если влом рассказывать, можете просто ткнуть в какую-нибудь web-страничку для чтения.
Спасибо.
dim565Искусственный Интеллект (424764) 3 года назад
Я не интересовался этим вопросом, но думаю вы правы, будет работать неправильно.

Сейчас погуглил и нашел про блокировку запросов (FOR UPDATE):
mysql.ru/docs/man/InnoDB_locking_reads.html
англ. dev.mysql.com/doc/refman/8.0/en/innodb-locking-reads.html
Вроде оно?

Еще попадались статьи про транзакции webistore.ru/sql/tranzakcii-v-mysql, но в суть не вникал, если вы собираетесь тщательно разбираться в этом вопрос напишите потом пожалуйста, какой способ правильней
Похожие вопросы