Как обновить или записать данные в базу mysql через подготовленные запросы и odku?
Записываю данные в базу следующим образом:
<?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 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); не работает.
Помогите, пожалуйста.