Почему добавляются новые записи с использованием 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] );
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ответы на вопрос 1
Adamos
@Adamos
Простите, а что за хрень вы делаете в запросе?
"Добавить в базу запись с ticker = $ticker и другими полями, а если запись с таким значением ticker = $ticker уже есть, то... изменить в ней значение ticker на, внезапно, все тот же $ticker"?
Вы не путаете с INSERT IGNORE?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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