Форум программистов, компьютерный форум, киберфорум
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. Показов 2534. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru