Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 26.06.2017
Сообщений: 25

Почему не работает ON DUPLICATE KEY?

02.07.2019, 11:41. Показов 855. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть код:
PHP
1
2
3
4
5
6
7
$sql = mysqli_query($link, "INSERT INTO `storage_alcohol` (`id_of_storage`, `id_of_alcohol`, `count`) VALUES ('{$_POST['id_storage']}', '{$_POST['id_alcohol']}',  '{$_POST['count']}') ON DUPLICATE KEY UPDATE `storage_alcohol` SET count = (count +'{$_POST['count']}') WHERE ((id_of_storage = '{$_POST['id_storage']}') and (id_of_alcohol = '{$_POST['id_alcohol']}'))");
 
      if ($sql) {
      echo '<p>Данные успешно добавлены в таблицу.</p>';
    } else {
      echo '<p>Произошла ошибка: ' . mysqli_error($link) . '</p>';
    }
Есть ошибка:
HTML5
1
Произошла ошибка: 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 'SET count = count +'5'' at line 1
ЧТО ТУТ НЕ ТАК? Мне нужно сделать проверку, если в бд в таблице уже есть такой id_alcohol, то при добавлении просто увеличить его количество, если нет, то создать... ЧТО ТОЛЬКО НЕ ПРОБЫВАЛ, REPLACE, SELECT EXISTS, постоянно выдаёт ошибку.

Моя таблица такая: БЕЗ PRIMARY KEY
∙id_of_storage, где я указываю склад
∙id_of_alcohol, где я указываю id алкоголя, который будет на этом складе
∙count количество того алкоголя, который я вставляю.

Должно быть так:
HTML5
1
2
3
4
5
id_s id_a count
1        1     10
1        3      15
2        1      3
2        5     4
А при добавлении оно так:
HTML5
1
2
3
4
5
6
id_s id_a count
1        1     10
1        1     2
1        3      15
2        1      3
2        5     4
Что я делаю не так?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.07.2019, 11:41
Ответы с готовыми решениями:

on duplicate key error
Здравствуйте. Есть такой код с запросом if(!empty($_POST)) { $query = &quot;INSERT INTO `queries`(`Query`, `Date`) VALUES('&quot;...

ON DUPLICATE KEY UPDATE
Помогите пожалуйста, я пытаюсь сделать SQL запрос который вставляет запись в таблицу, но если есть запись в которой val1=val11 and...

ON DUPLICATE KEY UPDATE
делаю обычную стандартную запись foreach($arr as $word){ mysql_query(&quot;INSERT INTO test (word,counter) VALUE...

3
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
02.07.2019, 12:21
Цитата Сообщение от WhoIam01 Посмотреть сообщение
count +'5''
видите - проблема в кавычках
0
0 / 0 / 0
Регистрация: 26.06.2017
Сообщений: 25
02.07.2019, 12:36  [ТС]
andyyy, поменял, та же ошибка:
Произошла ошибка: 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 'SET count = (count + 5) WHERE ((id_of_storage = 1) and (id_of_alcohol = 2))' at line 1
0
1311 / 1003 / 232
Регистрация: 01.10.2018
Сообщений: 3,903
02.07.2019, 13:51
Ответ очевидный. Эта конструкция предполагает наличие какого-то уникального индекса. Попробуйте составить из ваших полей id групповой уникальный (он же и первичный) индекс.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.07.2019, 13:51
Помогаю со студенческими работами здесь

Ошибка Duplicate entry '10' for key 1
Есть скрипт добавление новостей. В файле конфига есть значение newsnum, которое регулирует количество выводимых на главную страницу...

Duplicate entry '28' for key 'id_u'
Доброго времени суток! Столкнулся с проблемой, при добавлении вакансий пользователем на сайте. А именно: 1 пользователь не может добавить...

Использование ON DUPLICATE KEY UPDATE
есть таблица вида CREATE TABLE list ( uid int(11) auto_increment, address varchar(200) DEFAULT '', soato int(50) DEFAULT 0, ...

Запрос с on duplicate key update
Есть таблица с 18 полями, 1 поле соответственно уникальный идентификатор, остальные допустим обычные текстовые Возможно ли...

#1062 - Duplicate entry '127' for key 1
Предистория: У меня есть небольшой сайт, где каждый может добавлять свою историю. Сегодня утром почему-то нельзя добавлять историю, вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru