PDO, если идентификатор не существует, вставить строку еще при повторном обновлении

У меня есть небольшая база данных с некоторыми books и stocks, которая выглядит примерно так:

| id |       book             |     stock    |
|  1 | Harry Potter...        |      83      |
|  2 | Lord of the rings...   |      45      |
|  3 | In Search of Lost Time |       8      |

И я использую этот код для одновременной вставки нескольких записей - я беру записи из файла CSV с помощью php - (я нашел его здесь, на stackoverflow):

$pdo->beginTransaction();
$fields = ['book', 'stock'];
$values = [];

foreach($products as $product){
    $bind[] = '(?,?)';
    $values = array_merge($values, array_values($product));
}

$sql = "INSERT INTO books (" . implode(",", $fields) . ") VALUES " . implode(',', $bind);

$statement = $pdo->prepare ($sql);
try {
    $statement->execute($values);
} catch (PDOException $e){
   echo $e->getMessage();
}
$pdo->commit(); 

Теперь проблема, с которой я столкнулся, заключается в том, что все эти записи должны быть уникальными, но когда я запускаю этот код, чтобы проверить, есть ли какие-либо обновления с точки зрения книжного или книжного запаса внутри файла CSV, это просто рекламирует одну и ту же книгу снова и снова (с другим id).

Есть ли способ как-то избежать этого дублирования, но в то же время вставить записи multiple, используя значения PDO и binding?

Спасибо, что нашли время прочитать это! : D

«Есть ли способ как-то избежать этого дублирования, но в то же время вставить несколько записей, используя PDO и значения привязки?» - ВСТАВИТЬ ... НА ДВОЙНОЙ КЛЮЧ.
Funk Forty Niner 09.08.2018 17:08

Привет, фанк, я знаю, как использовать это только для одной записи :( и я не могу найти способ использовать on duplicate для нескольких записей, не могли бы вы мне помочь? X_X

emma 09.08.2018 17:11
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
25
0

Другие вопросы по теме