Здравствуйте! Мучаюсь уже который день, не могу понять, везде код работает адекватно, с другими данными, а тут нет...
Ошибка вот такая:
Ошибка MySQL
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'END), `is_updated` = (CASE `id` END), `is_order` = (CASE `id` END), `is_exist`' at line 1
UPDATE `table` set `count` = (CASE `id` END), `is_updated` = (CASE `id` END), `is_order` = (CASE `id` END), `is_exist` = (CASE `id` END), `price` = (CASE `id` END) WHERE `id` IN () AND `deleted` = 'N'
Код вставки такой:
// Все переменные проверял, строки формируют нормально и кол-во совпадает
// То что там цифры в кавычках - тоже менял, пробовал без кавычек - не помогает!
$sqlPartRusklimatProductName .= ($sqlPartRusklimatProductName == '') ? "'{$itemName['id']}'" : ',' . "'{$itemName['id']}'";
$caseIsExist .= " WHEN '{$itemName['id']}' THEN 'Y'";
$caseIsOrder .= " WHEN '{$itemName['id']}' THEN 'N'";
$caseCount .= " WHEN '{$itemName['id']}' THEN '$count'";
$caseUpdated .= " WHEN '{$itemName['id']}' THEN 'Y'";
$casePrice .= " WHEN '{$itemName['id']}' THEN '$price'";
$updateProductRusklimat = "UPDATE `table` set `count` = (CASE `id` $caseCount END), `is_updated` = (CASE `id` $caseUpdated END), `is_order` = (CASE `id` $caseIsOrder END), `is_exist` = (CASE `id` $caseIsExist END), `price` = (CASE `id` $casePrice END) WHERE `id` IN ($sqlPartRusklimatProductName) AND `deleted` = 'N'";
db()->query($updateProductRusklimat);
Что самое интересное - в других местах работает нормально..., а в этом участке тоже работало нормально до того, как поставщик не стал что-то менять у себя, потом после изменений все работало еще некоторое время без ошибок, а потом вот, стала появляться такая ошибка... как полтергейст какой-то! Может в названии артикула какой-то кириллический символ затесался? Может из-за этого ошибка?