Задать вопрос

Почему добавляются новые записи с использованием ON DUPLICATE KEY?

Доброго времени суток. Мне нужно добавить новую запись если параметр $ticker не существует в БД, или обновить запись с $ticker, если она существует. Делаю вот так, но каждый раз он мне добавляет новые данные. Почему так? Как мне, если поле ticker = $ticker обновлять запись, а если нет, добавлять новую ? спасибо!
$sql = "INSERT INTO `platform` (ticker, lastprice, pricechange, pricechangepercent, highprice, lowprice, volume, quoteVolume, spread, time) VALUES (:ticker, :lastprice, :pricechange, :pricechangepercent,:highprice,:lowprice,:volume,:quoteVolume, :spread, :time) ON DUPLICATE KEY UPDATE ticker = VALUES(`ticker`)";
            $stmt = $pdo->prepare($sql);
            $stmt->execute( [':ticker'=>$ticker,':lastprice'=>$lastprice,':pricechange'=>$pricechange,':pricechangepercent'=>$pricechangepercent,':highprice'=>$highprice,':lowprice'=>$lowprice,':volume'=>$volume,':quoteVolume'=>$quoteVolume,':spread'=>$spread,':time'=>$timeadd] );
  • Вопрос задан
  • 88 просмотров
Подписаться 1 Простой 9 комментариев
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
Adamos
@Adamos
Простите, а что за хрень вы делаете в запросе?
"Добавить в базу запись с ticker = $ticker и другими полями, а если запись с таким значением ticker = $ticker уже есть, то... изменить в ней значение ticker на, внезапно, все тот же $ticker"?
Вы не путаете с INSERT IGNORE?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽