Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
MySQL

Ошибка при добавлении записи в таблицу: Duplicate entry '' for key

17.05.2014, 13:39. Показов 2561. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть таблица user и пара колонок в ней под именем color1, color2 вобщем нужно добавить запись через через php, а оно ни как недобавляет! Где я ошибся?
PHP
1
2
3
4
5
6
7
8
9
$sql = mysql_query("insert into `user` (`color1`, `color2`) values('33333','55555')");
if ($sql == 'true')
{
echo 'запись добавлена';
}
else
{
echo 'ошибка добавления';
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.05.2014, 13:39
Ответы с готовыми решениями:

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

Ошибка Duplicate entry '0' for key 'PRIMARY'
Подскажите, почему появляется эта ошибка при добавлении новой записи в базу? AUTO_INCREMENT установлен. запрос: insert into...

Duplicate entry '1' for key 'PRIMARY' Error No: 1062
Ошибка Notice: Error: Duplicate entry '1' for key 'PRIMARY' Error No: 1062 INSERT INTO oc_product_attribute(`product_id`,...

8
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
17.05.2014, 13:49
NIKOLAYY,
PHP
1
2
3
4
5
6
7
8
9
$sql = mysql_query("insert into `user` (`color1`, `color2`) values('33333','55555')");
if ($sql)
{
echo 'запись добавлена';
}
else
{
echo mysql_error();
}
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
17.05.2014, 13:57
PHP
1
if ($sql == 'true')
Эта тема всплывает каждую неделю... Здесь ты сравниваешь со строкой, а не с булевым значением. Если хочешь сравнить с булевых, тогда надо так
PHP
1
if(true === $sql)
1
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
17.05.2014, 14:05  [ТС]
romchiksoad,
Что- то вот так пишет Duplicate entry '' for key 'nick' видимо выше в коде у меня какая-то ошибка?
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
17.05.2014, 14:12
Dolphin, если $sql имеет булев тип и равно true, то сравнение вида $sql == 'true' в результате ввернет истину, т.к. произойдет преобразование типа bool в тип string:
PHP
1
2
3
4
5
6
<?php
$true = true;
if ( $true == 'true')
    echo 'true';
else
    echo 'false';
Если нужно сохранить тип данных при сравнении то используется оператор идентичности ===, тогда типы переменных так же будут сравниваться и это условие уже вернет false:
PHP
1
2
3
4
5
6
<?php
$true = true;
if ( $true === 'true')
    echo 'true';
else
    echo 'false';
Но тут вообще $sql ни с чем сравнивать не нужно. И вообще, сравнение вида $sql == true, $sql === true, $sql != true и т.п. не имеют никакого смысла.
Таблицы сравнения типов PHP
Ну и вообще о типах написано в этом разделе: Типы переменных PHP

Добавлено через 58 секунд
NIKOLAYY, нет, у Вас в поле nick должно быть уникальное значение, т.е. в таблице не должно быть двух строк с одинаковым ником. Удалить индекс с этого поля и все станет на свои места.
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
17.05.2014, 14:35
Цитата Сообщение от romchiksoad Посмотреть сообщение
если $sql имеет булев тип и равно true, то сравнение вида $sql == 'true' в результате ввернет истину, т.к. произойдет преобразование типа bool в тип string
только наоборот, строка преобразуется в булев тип.
PHP
1
2
var_dump((string) true); // string '1' (length=1)
var_dump((bool) 'true');  // boolean true
Если бы было преобразование типа bool в тип string, то "1" никак не могло равняться "true"

Добавлено через 7 минут
PHP
1
2
if ( true == 'абракадабра')
    echo 'Да, это истина!';
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
17.05.2014, 14:37
Dolphin, ну да, Вы правы, я перепутал.
PHP
1
2
3
4
5
$true = true;
if ( (string)$true == 'true')
    echo 'true';
else
    echo 'false';
Напишет false.
0
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
17.05.2014, 14:56  [ТС]
Всем спс, вобщем INSERT INTO у меня так ни как и незаработал, как я его некрутил...
Заработал вот этот UPDATE

PHP
1
2
3
4
5
6
7
8
9
$sql = mysql_query("UPDATE `test`.`user` SET `color1` = '888',`color2` = '999' WHERE `user`.`id` =1");
 if(true === $sql)
{
echo 'запись добавлена';
}
else
{
echo mysql_error();
}
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
17.05.2014, 15:03
INSERT INTO - Это вставка
UPDATE - обновление
Абсолютно разные вещи
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.05.2014, 15:03
Помогаю со студенческими работами здесь

Ошибка в синтаксисе при добавлении записи в БД
Дорогие друзья прошу помощи, в чём может быть ошибка синтаксиса, сам не понимаю вроде всё верно. строка: $insert =...

DATETIME - ошибка при добавлении записи в mysql
Добрый день, не могу разобраться с синтаксисом в sql запросе. Тип данных &quot;DATETIME&quot; имеет вид ГГГГ-ММ-ДД ЧЧ:ММ:СС Пишу: ...

Ошибка при добавлении записи в базу через форму
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in /home/u466134400/public_html/db1/scripts/connect.php:2 Stack...

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

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru