[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Одновременные запросы к базе данных
inmaxim93
Добрый вечер, столкнулся с проблемой когда одновременно несколько разных пользователей отправляют одновременно несколько запросов к базе данных и происходит выборка / изменение одних и тех же данных.

Если я буду использовать такой способ, это гарантирует 100% что пользователь не сможет изменить данные в ячейке `points` более одного раза?

У поля userid в таблице userslock есть UNIQUE KEY. Может ли результат запроса $lockuser вернуть TRUE более одного раза, при одновременных запросах?


<?php

$lockuser = mysql_query(sprintf("INSERT INTO `userslock` (`id`, `userid`, `time`) VALUES (NULL, '%s', '%s')", 11012, time())); //

if ($lockuser === TRUE) {

// Выполнение необходимых операций.

$updatecontest = mysql_query("UPDATE `competition` set `points` = `points` + '1' WHERE `competition` = '2'");

$lockuserfree = mysql_query(sprintf("DELETE FROM `userslock` WHERE `userid` = '%s'", 11012));

}
T1grOK
Прекращайте заниматься глупостями, современные СУБД сами в состоянии разобраться с работой с данными и конкурентным доступом.

Пересмотрите логику - какая есть и какая необходима. 99% проблема на вашей стороне.
1% - это действительно интенсивный доступ к данным из-за использования MyISAM.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.