denis_druid
@denis_druid

Почему дублирует данные при добавлении в БД?

Здравствуйте. Помогите разобраться, почему при добавлении ЛЮБОЙ записи (и UPDATE, и INSERT) счетчики добавляют +2, а должны +1. Кроме того, в последнее поле c CONCAT также добавляется две "записи" (два нуля или две единицы). А должна одна.
try
{
    ConnectToDBCollector(); //Подключение к БД collector
    $stmt = $pdo->prepare("SELECT id FROM `table` WHERE `query` = '$search' LIMIT 1");
    $stmt->execute();
    $thisArray = $stmt->fetchAll();
    if(count($thisArray) > 0)
    {
        $stmt = $pdo->prepare("UPDATE `table` SET `quantity` = `quantity` + 1, `yes_no` = CONCAT('$doesItFind | ', `yes_no`) WHERE `query` = '{$search}' LIMIT 1");
    }
    else
    {
        $stmt = $pdo->prepare("INSERT INTO `table` (`query`,`quantity`,`yes_no`) VALUES ('{$search}', 1, '{$doesItFind}')");
    }
    $stmt->execute();
}
catch (PDOException $e)
{
    die('Error: ' . $e->getMessage());
}

---
Не могу понять, почему код выполняется два раза, вместо одного.
Выглядит это так:
Добавление в пустую БД первой записи в первый раз: https://yadi.sk/i/seHOhqNQ3M8HXN
Видно, что выполняются оба запроса почему-то...
А вот так выглядит результат после повторного добавления этих же данных: https://yadi.sk/i/YfXsT0Uz3M8HuY
Видно, что вместо тройки, везде четверки сразу.
20 раз перепроверил код, так и не понял, где ошибка. Код же примитивный совсем.
  • Вопрос задан
  • 472 просмотра
Пригласить эксперта
Ответы на вопрос 1
sanek_os9
@sanek_os9
Работаю с Laravel, Vue, Vuetify, AWS Amazon, Linux
Скажите, а у вас случайно /favicon.ico не отсутствует?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы