Здравствуйте, подскажите пожалуйста как решить данную проблему? PHP: $result = array_diff($product_sku, array($known_skus[$sku])); // Находим артикулы, которых нет в выгрузке foreach ($result as $key => $value) { watchdog('custom_import', 'Снимаем с публикации. Товар с артикулом @value отсутствует в выгрузке', ['@value' => $value], WATCHDOG_DEBUG); $status_product = db_update('commerce_product', 'r') ->condition('r.sku', $value) ->fields(array('r.status' => 0)) ->execute(); } Выводит такую ошибку passed to db_update() must be of the type array, string
Не надо циклом обновлять базу, засунь все в цикле в массив, а уже потом делай update. А ошибка значит что ты записываешь в таблицу то что туда нельзя записать.
PHP: $status = []; $result = array_diff($product_sku, array($known_skus[$sku])); // Находим артикулы, которых нет в выгрузке foreach ($result as $key => $value) { watchdog('custom_import', 'Снимаем с публикации. Товар с артикулом @value отсутствует в выгрузке', ['@value' => $value], WATCHDOG_DEBUG); $status[] = $value; } $status_product = db_update('commerce_product', 'sp') ->condition('sp.sku', $status) ->fields(array('sp.status' => 0)) ->execute(); Сделал так. Не получилось.
@Junnior, вторым параметром функции db_update должен быть массив, а не строка. Подробнее - в документации по используемой CMS (используемому инструментарию). Например, для drupal: function db_update