Я пытаюсь перенести свой сайт, который я разрабатывал локально на сервере MAMP, на работающий сервер. Все запросы работают на MAMP, как и ожидалось. На работающем сервере я получаю сообщения об ошибках по запросу «INPUT ... NOT EXISTS».
Сервер MAMP: PHP - 7.4.2 MySQL - 5.7.26 InnoDB
Живой сервер: PHP - 7,4 MariaDB - 10,2 InnoDB
структура и первичные ключи одинаковы - проверены все таблицы
$ user_id, $ id, $ date, $ summ - переменные , который я получаю с помощью метода POST.
Запрос:
if ($result = $link->prepare("INSERT INTO sb_user_checks (user_id, check_id, date_update, summ, updated_by)
SELECT ?, ?, ?, ?, 'You'
WHERE NOT EXISTS (SELECT date_update FROM sb_user_checks WHERE user_id=? AND check_id=? AND date_update=?)
")) {
$result->bind_param('iisiiis', $user_id, $id, $date, $summ, $user_id, $id, $date);
$result->execute();
if (mysqli_affected_rows($link)>0) {echo 'added';}
$result->close();
}
Я получаю следующую ошибку:
# 1064 - У вас есть ошибка в вашем SQL синтаксисе; проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса, который можно использовать рядом с «ГДЕ НЕ СУЩЕСТВУЕТ (ВЫБЕРИТЕ date_update ОТ sb_user_checks ГДЕ user_i») в строке 3 Это связано с версией MySQL или это неверный запрос? Но, опять же, он работает правильно на MAMP.