@viktorross

Не работает скрипт php?

здравствуйте, кто-нибудь может мне прояснить возникшую проблему

скрипт должен обновлять данные в таблице по unique_id, но unique_id в таблице mysql нет

вот часть кода на которую в логе показана ошибка

if ($this->uid && $parsed_array["id"]) {
            $uid_exists = $db->fetchRow("select `id` from " . TABLE_ADS . " where `unique_id` = '" . $parsed_array["id"] . "'");
            if ($uid_exists) {
                if ($this->no_duplicates) {
                    return NULL;
                }
                $sql_str = "update " . $this->table . " set ";
                $where = " where `unique_id` = '" . $parsed_array["id"] . "'";
            }
        }


интересно то, что unique_id в таблице быть не должно, так как это работает? я не совсем понимаю что-то, кто нибудь может объяснить?
  • Вопрос задан
  • 471 просмотр
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Самое логичное предположение:
В принципе код должен проверять данные из какого-то парсинга(не суть какого), в котором есть свои значения, отвечающие за уникальность товарной единицы(?), например артикул или штрихкод, проверять поле unique_id, в которое оно вносится, и если таковое уже есть делать апдейт. Все бы шло хорошо(ну, в меру, код действительно такой себе), но какой-то вася отвечающий за разработку бд это поле тупо пропустил при создании, а может похерилось при переносе, или из бэкапа не ту версию подняли, короче это текстовое поле ушло в горы.

Выход - добавьте поле в таблицу сами(только бэкапы сделайте), скорее всего что то типа:
ALTER TABLE `tablename` ADD `unique_id` VARCHAR(24) NULL , ADD INDEX (`unique_id`);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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