Новичок в php, вопрос следующий. Несколько пользователей на сайте в один момент делают одно и тоже действие(в моем случае хотят забронировать один и тот-же автомобиль на одно и то же время). Их клиенты ajax-ом вызывают скрипт на сервере и отправляют JSON с данными о бронировании (вот фрагмент):
if($_POST['query'] == "create"){
$connect = mysqli_connect($config['DB_IP'], $config['DB_LOGIN'], $config['DB_PASS'], $config['DB_NAME']);
$input_json = json_decode($_POST['json']);
for($i = 0; $i < count($input_json->book); $i++){//в массиве book даты, на которые нужен авто
$date = new DateTime($input_json->book[$i]);
$check = mysqli_query($connect, "
SELECT *
FROM schedule
INNER JOIN booking
ON schedule.booking = booking.id
WHERE booking.auto = ". $input_json->car_id ."
AND schedule.date = '". $date->format('Y-m-d') ."'
");
}
if(mysqli_num_rows($check) == 0){
$book = mysqli_query($connect, "INSERT INTO booking (verify,client,auto,comm) VALUES (0,".$input_json->client.",".$input_json->car_id.",'null')");
$id_book = mysqli_insert_id($connect);
$schedule = "INSERT INTO schedule (booking,date) VALUES ";
for($i = 0; $i < count($input_json->book); $i++){
if($i > 0) $schedule .= ",";
$date = new DateTime($input_json->book[$i]);
$schedule .= "(".$id_book.",'".$date->format('Y-m-d')."')";
}
$schedule .= ";";
$create = mysqli_query($connect, $schedule);
echo 'ok';
}
else {
echo 'error'; //на клиент возвращается ошибка, что машина уже забронирована на это время
}
В цикле проверяется, нет ли в базе данных бронирований на те дни, на которые хочет пользователь. Если нету, то условие выполняется и в базу записывается новое бронирование. Соответственно кто первый успел, того и сапоги.
В чем суть вопроса: Как выполняются скрипты? Если параллельно, то получается что может произойти коллизия - например в двух одновременно запущенных скриптах проверка в бд ничего не найдет, и сработает условие на запись, а там . Правильно я понимаю?