При запросе обновления в среде Codeigniter я получил эту ошибку:
Ошибка запроса: неизвестный столбец 'price_USD' в 'списке полей' - Неверный запрос: UPDATE offers_prices_history
SET price
= '37', price_per_unit_of_active_ingredient
= 0,061666666666667, unit_of_measure
= 'GBP / мг', currencies_id
= '23', price_USD
= 46,93339, price_per_unit_of_active_ingredient_USD
= 0,078222316666667, last_modified
= '2019-06-11 18:44:38 'ГДЕ id
=' 21 '
Если я копирую и вставляю весь запрос в phpmyadmin и запускаю его, он работает правильно.
Здесь DUMP используемой таблицы:
CREATE TABLE `offers_prices_history` (
`id` int(11) UNSIGNED NOT NULL,
`offers_id` int(11) UNSIGNED NOT NULL,
`price` float NOT NULL,
`price_per_unit_of_active_ingredient` float UNSIGNED NOT NULL,
`price_USD` float DEFAULT NULL,
`price_per_unit_of_active_ingredient_USD` float DEFAULT NULL,
`unit_of_measure` varchar(255) NOT NULL,
`currencies_id` int(11) UNSIGNED NOT NULL,
`creation` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`last_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Dump dei dati per la tabella `offers_prices_history`
--
INSERT INTO `offers_prices_history` (`id`, `offers_id`, `price`, `price_per_unit_of_active_ingredient`, `price_USD`, `price_per_unit_of_active_ingredient_USD`, `unit_of_measure`, `currencies_id`, `creation`, `last_modified`) VALUES
(6, 16, 25, 0.0416667, NULL, NULL, 'GBP / mg', 23, '2019-06-11 11:26:15', '2019-06-11 11:26:15'),
(7, 16, 26, 0.0433333, NULL, NULL, 'GBP / mg', 23, '2019-06-11 11:28:03', '2019-06-11 11:28:03'),
(8, 16, 27, 0.045, NULL, NULL, 'GBP / mg', 23, '2019-06-11 11:28:46', '2019-06-11 11:28:46'),
(9, 16, 28, 0.0466667, NULL, NULL, 'GBP / mg', 23, '2019-06-11 11:37:58', '2019-06-11 11:37:58'),
(10, 16, 29, 0.0483333, NULL, NULL, 'GBP / mg', 23, '2019-06-11 11:45:53', '2019-06-11 11:45:53'),
(11, 16, 30, 0.05, NULL, NULL, 'GBP / mg', 23, '2019-06-11 11:52:10', '2019-06-11 11:52:10'),
(12, 16, 31, 0.0516667, NULL, NULL, 'GBP / mg', 23, '2019-06-11 11:53:16', '2019-06-11 11:53:16'),
(13, 16, 32, 0.0533333, 40.591, 0.0676517, 'GBP / mg', 23, '2019-06-11 15:42:19', '2019-06-11 15:42:19'),
(14, 16, 32, 0.0533333, 40.591, 0.0676517, 'GBP / mg', 23, '2019-06-11 15:44:17', '2019-06-11 15:44:17'),
(15, 16, 32, 0.0533333, 40.591, 0.0676517, 'GBP / mg', 23, '2019-06-11 15:45:12', '2019-06-11 15:45:12'),
(16, 16, 33, 0.055, 41.8595, 0.0697659, 'GBP / mg', 23, '2019-06-11 15:56:07', '2019-06-11 15:56:07'),
(17, 16, 34, 0.0566667, 43.128, 0.07188, 'GBP / mg', 23, '2019-06-11 16:33:30', '2019-06-11 16:33:30'),
(18, 16, 33, 0.055, 41.8595, 0.0697659, 'GBP / mg', 23, '2019-06-11 17:30:50', '2019-06-11 17:30:50'),
(19, 16, 33, 0.055, 41.8595, 0.0697659, 'GBP / mg', 23, '2019-06-11 17:54:22', '2019-06-11 17:54:22'),
(20, 16, 35, 0.0583333, 44.3965, 0.0739941, 'GBP / mg', 23, '2019-06-11 18:15:37', '2019-06-11 18:28:04'),
(21, 16, 36, 0.06, 45.6649, 0.0761082, 'GBP / mg', 23, '2019-06-11 18:33:47', '2019-06-11 18:33:47');
--
-- Indici per le tabelle scaricate
--
--
-- Indici per le tabelle `offers_prices_history`
--
ALTER TABLE `offers_prices_history`
ADD PRIMARY KEY (`id`),
ADD KEY `ref_currency_id_idx` (`currencies_id`),
ADD KEY `offers_prices_history_to_vendors_offers_idx` (`offers_id`);
--
-- AUTO_INCREMENT per le tabelle scaricate
--
--
-- AUTO_INCREMENT per la tabella `offers_prices_history`
--
ALTER TABLE `offers_prices_history`
MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=22;
--
-- Limiti per le tabelle scaricate
--
--
-- Limiti per la tabella `offers_prices_history`
--
ALTER TABLE `offers_prices_history`
ADD CONSTRAINT `offers_prices_history_to_vendors_offers_idx` FOREIGN KEY (`offers_id`) REFERENCES `phar263d_PharmaComparisonDB`.`vendors_offers` (`id`);
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Функция, которая выполняет обновление, просто использует ассоциативный массив
function update($id, $data)
{
$this->db->where('id', $id);
$this->db->update($this->table_name, $data);
}
, и массив заполняется, как указанов сообщении об ошибке.Я не могу понять, какую попытку предпринять, так как ошибка показывает правильный запрос, столбец, который дает ошибку, существует.Я искал похожие посты, много читал с тем же заголовком, но не нашел аналогичной проблемы, которую можно обобщить таким образом
- операция обновления
- ошибка не существующего столбца для существующегоcolumn
- имена столбцов правильно указаны в строке запроса
- запрос, показанный в сообщении об ошибке, выполняется правильно при копировании и вставке в phpMyAdmin