@kolomat

Возможно ли как-то проверить данные перед вставкой в бд?

Добрый вечер, вопрос возможно не правильно сформулировал. Суть заключается в чем, есть простой скрипт
$products = 'INSERT INTO product(sku, quantity, price) VALUES';
foreach($xml->offers->offer as $product) {
         $products .= sprintf('("%s", "%s", "%s""),', $product->vendorCode, $product->quantity, $product->price);
}
$products = substr($products, 0, -1);
$db->query($products);

Вопрос собственно в чем, при записи в таблицу product, есть стлобец product_id и он идет автоинкремент, соотвественно при таком подходе товары двоятся. Возможно ли как-то при записью в бд, получить sku товаров и записать в бд только те которых нет?
На данный момент я думаю записать все товары с xml в отдельный массив, потом создать массив с уже существующими товарами и потом сравнить их по sku и записать потом только уникальные значения. Насколько это правильный подход и возможно ли есть более простое решения?
  • Вопрос задан
  • 244 просмотра
Пригласить эксперта
Ответы на вопрос 2
@artem_sib
Вам когда в форму данные пришли, вы почему не хотите взять данные с формы и проверить есть ли они в бд если нет то добавить, данный товар
Ответ написан
Compolomus
@Compolomus Куратор тега PHP
Комполом-быдлокодер
Ну как минимум надо использовать подготовленные выражения, вставку делать через insert ignore можно, либо делать проверку на наличие и делать обновление записи
https://www.php.net/manual/ru/mysqli.prepare.php
https://www.php.net/manual/ru/pdo.prepare.php
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы