С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 14.10.2016
Сообщений: 12

При добавлении пользователя в БД для необязательных полей нужно передать NULL, а не ''

07.05.2018, 18:50. Показов 1920. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Код добавления в БД пользователя:
PHP
1
2
$result_query_insert = $mysqli->query("INSERT INTO `users` (first_name, last_name, email, password, birth_date, information, music_icon, link_to_vk) VALUES ('".$first_name."', '".$last_name."', '".$email."', '".$password."', '".$birth_date."', 
                    '".$information."', '".$music_icon."', '".$link_to_vk."')");
Для $information написана проверка, которая, если поле пустое присваивает NULL
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
                 if (isset($_POST["information"])) {
                    
                    $information = trim($_POST["information"]);
 
 
                    if(!empty($information)){
 
                        $information = htmlspecialchars($information, ENT_QUOTES);
 
                    }else{
 
                        $information = null;
                    }
                 }
 
                 else {
                    $information = null;
                 }
Но в БД всё равно заносится пустая строка, а не null

Пробовал прописать проверку прямо в запросе типа:
PHP
1
.(($information == null) ? $information :'"{$information}"').
Но результат тот же

Помогите пожалуйста нубу)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.05.2018, 18:50
Ответы с готовыми решениями:

Проверка заполнения необязательных полей формы
у меня есть форма и в ней есть поля, которые к заполнению не обязательы. как мне делать в нимх проверку? я делаю так: ...

Маска ввода: любое число необязательных строчных символов (Null, если поле не заполнено)
Одно из заданий не могу сделать 4. Создать формат текстового поля так, чтобы можно было вводить любое число необязательных строчных...

При добавлении одного элемента в список head и tail остаются NULL
LIST *head=NULL,*tail=NULL; void add(LIST * l,LIST * head,LIST * tail) { l->next=l->prev=NULL; if (head==NULL) head=tail=l; ...

14
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
07.05.2018, 19:01
Цитата Сообщение от Feroned Посмотреть сообщение
Но в БД всё равно заносится пустая строка, а не null
в БД этому полю, по умолчанию, нужно установить значение NULL?
0
0 / 0 / 0
Регистрация: 14.10.2016
Сообщений: 12
07.05.2018, 19:05  [ТС]
Установлено, но всё равно записывает пустую строку
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
07.05.2018, 19:18
SQL
1
NULL?
Добавлено через 5 минут
PHP
1
2
3
         $information = NULL;
 
  if(is_null($information)) {   $squery = "INSERT INTO  `table`  (`col`) VALUES('$information')";}
0
0 / 0 / 0
Регистрация: 14.10.2016
Сообщений: 12
07.05.2018, 19:18  [ТС]
Ну наверное)
Изображения
 
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
07.05.2018, 19:22
зачем вам нуль, можно спросить))
0
0 / 0 / 0
Регистрация: 14.10.2016
Сообщений: 12
07.05.2018, 19:48  [ТС]
Действительно (с)

Вообще можно было бы и без него обойтись, но во-первых еще и в поле с вводом даты хочу передавать null, чтобы не выводило 0000-00-00 если значения нет, а во-вторых уже из принципа ибо долблюсь с этим достаточно долго)
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
07.05.2018, 20:06
в int нельзя передавать нуль насколько я понял))
попробуйте в datetime cоздать NULL(как на вашей картинке).. прямо с базы - выйдет ошибка
0
0 / 0 / 0
Регистрация: 14.10.2016
Сообщений: 12
07.05.2018, 20:22  [ТС]
Вроде нет, сверху то что сам вводил вручную в базу, снизу то что с формы отправлял через скрипт
Изображения
 
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
07.05.2018, 20:30
Цитата Сообщение от Feroned Посмотреть сообщение
низу то что с формы отправлял через скрипт
ну если оправляли значит получилось?
0
0 / 0 / 0
Регистрация: 14.10.2016
Сообщений: 12
07.05.2018, 20:34  [ТС]
Цитата Сообщение от andyyy Посмотреть сообщение
ну если оправляли значит получилось?
Данные-то да, но именно сама проблема, что мне нужно чтобы необязательные поля (birth_date, information), если их не заполнять, были Null, а не 0000-00-00 и пустая строка соответственно
0
 Аватар для Вовчек
33 / 33 / 28
Регистрация: 04.04.2011
Сообщений: 333
08.05.2018, 10:23
Надо проверить, что за строка передается, вдруг она после htmlspecialchars становится пустой
0
1 / 1 / 0
Регистрация: 07.08.2013
Сообщений: 55
09.05.2018, 17:40
Помогите пожалуйста

Если здесь
PHP
1
 <input size="15" name="plomba" type="text">
ничего не написано , тогда в таблицу записать (NULL)
Вот моя запись
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
include ('connect.php');
$type = $_POST['type']; 
$nomer = $_POST['nomer']; 
$date = $_POST['date'];
$hoz = $_POST['hoz'];
$plomba = $_POST['plomba'];
$prim = $_POST['prim'];
 
$sql = 'INSERT INTO vin(type, nomer, date, hoz, plomba, prim) VALUES("'.$type.'", "'.$nomer.'", "'.$date.'", "'.$hoz.'", "'.$plomba.'","'.$prim.'")';
// проверка
     if(!mysqli_query($link,$sql))
     {echo '<center><p><b>Ошибка при добавлении данных!</b></p></center>';}
     else
 {echo '<center><p><b>Данные добавлены!</b></p></center>';}
mysqli_close($link);
echo "<script>document.location.replace('edit.php');</script>";
?>
Данный код работает, только если в поле пусто , он в таблицу пишет пустое значение , а надо (NULL).
В самой БД по умолчанию создается как (NULL) в столбце "plomba"

Заранее благодарен, я только начинаю разбираться
0
 Аватар для Вовчек
33 / 33 / 28
Регистрация: 04.04.2011
Сообщений: 333
10.05.2018, 09:15
А да точно, форма же отправляет пустое значение как строку. Тогда нужна проверка
PHP
1
$plomba = empty($_POST['plomba']) ? null : $_POST['plomba'];
1
1 / 1 / 0
Регистрация: 07.08.2013
Сообщений: 55
13.05.2018, 15:36
Сделал вот так
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
include ('connect.php');
$type = $_POST['type']; 
$nomer = $_POST['nomer']; 
$date = $_POST['date'];
$hoz = $_POST['hoz'];
$plomba = empty($_POST['plomba']) ? null : $_POST['plomba'];
$prim = $_POST['prim'];
 
$sql = 'INSERT INTO vin(type, nomer, date, hoz, plomba, prim) VALUES("'.$type.'", "'.$nomer.'", "'.$date.'", "'.$hoz.'", "'.$plomba.'","'.$prim.'")';
// проверка
     if(!mysqli_query($link,$sql))
     {echo '<center><p><b>Ошибка при добавлении данных!</b></p></center>';}
     else
 {echo '<center><p><b>Данные добавлены!</b></p></center>';}
mysqli_close($link);
echo "<script>document.location.replace('edit.php');</script>";
?>
Все равно , пишет пустое значение
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.05.2018, 15:36
Помогаю со студенческими работами здесь

Очистка полей при добавлении записи в БД
Здравствуйте,мне нужно что бы в базе данных при добавлении новой записи об актерах и фильме очищались поля и что бы было предложение...

AdoTable, ошибка при добавлении полей
Ошибка следующая. Открываю таблицу двойным кликом. Хочу добавить поля, поля из другой таблицы. Таблицу в свойстве TableName указал правильно

Обнуление полей на форме при добавлении записей
Доброе утро! Имеется таблица со следующими полями № п/п Наименование документа Количество листов Автор Дата добавления ...

EntityValidationErrors при добавлении пользователя в базу
Добрый день. Ситуация такая. Был класс, экземпляры которого без проблем добавлялись в базу, но появилась необходимость добавить еще один...

При добавлении нового пользователя в БД запись дублируется
Всем привет. Вопрос простой, но я никак не могу с ним совладать. Есть код: $db = mysql_connect('localhost', 'd2versus', '11111'); ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru