Записываю данные в базу следующим образом:
<?php
require_once 'connection.php'; // подключаем скрипт
// Создание соединения
$conn = new mysqli($servername, $username, $password, $database);
// Проверка соединения
if ($conn->connect_error) {
die("Ошибка подключения: " . $conn->connect_error);
}
$up_date = date('Y-m-d\TH:i:s');
// Подготовить и связать
$stmt = $conn->prepare("INSERT INTO offer (affiliate, date, day_sales, description, image, item_id, price_total, rate, sales, sales_per_day, timer, title, totalPartners, totalReward, up_date, user_fullname, user_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
on duplicate key update affiliate = '116', day_sales = '11000'");
// on duplicate key update VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
$stmt->bind_param("isissiiiiissiissi", $affiliate, $date, $day_sales, $description, $image, $item_id, $price_total, $rate, $sales, $sales_per_day, $timer, $title, $totalPartners, $totalReward, $up_date, $user_fullname, $user_id);
// Установить параметры и выполнить
$affiliate = "1";
$date = "$up_date";
$day_sales = "1";
$description = "Феодал системс";
$image = "Федор";
$item_id = "1111";
$price_total = "1";
$rate = "1";
$sales = "1";
$sales_per_day = "1";
$timer = "$up_date";
$title = "Федор";
$totalPartners = "1";
$totalReward = "1";
$up_date = "$up_date";
$user_fullname = "Федор";
$user_id = "777";
$stmt->execute();
echo "Успешно созданы новые записи";
// Закрыть связь
$stmt->close();
// Закрыть подключение
$conn->close();
?>
В базу пишется уникальный id записи (AUTO_INCREMENT) и
уникальный item_id.
Мне необходимо в цикле проверять наличие записи в базе по ее уникальному $item_id и если она есть, то обновлять ее, если записи нет, то добавлять ее.
Необходимо сразу делать
insert ... on duplicate key update ...
без предварительного поиска который вставляет запись если ее нет и изменяет - если она есть.
Пробовал адаптировать свой код под
этот ответ но не получилось корректно настроить on duplicate key update VALUES.
on duplicate key update VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
не работает.
Меня устроило бы и это
on duplicate key update affiliate = '116', day_sales = '11000'");
но как в значения подставлять нужные данные $affiliate, $day_sales и т.д.
on duplicate key update affiliate = '$affiliate', day_sales = '$day_sales'");
не работает.
Помогите, пожалуйста.