Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для freshxmp3
29 / 21 / 9
Регистрация: 21.07.2018
Сообщений: 142

NULL в php и mysql

10.01.2019, 14:39. Показов 887. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Есть 2 переменные $source и $userid. Не важно откуда я в них кладу информацию, но в них может быть число или NULL. В данный момент var dumb показывает, что в них NULL. Пытаюсь сделать такой insert

PHP
1
2
3
4
5
6
7
8
9
10
11
    $mysqli->query("INSERT INTO users SET
                                    email = '$email',
                                    password = '$password',
                                    registrationdate = now(),
                                    phonenumber = '$phonenumber',
                                    balance = 0,
                                    agentcomission = '$value',
                                    usersourceid = '$source', 
                                    usertypeid = 1,
                                    parentuserid =  '$userid' 
                                ");
И он не проходит, но стоит заменить переменные на NULL

PHP
1
2
3
4
5
6
7
8
9
10
11
    $mysqli->query("INSERT INTO users SET
                                    email = '$email',
                                    password = '$password',
                                    registrationdate = now(),
                                    phonenumber = '$phonenumber',
                                    balance = 0,
                                    agentcomission = '$value',
                                    usersourceid = NULL,
                                    usertypeid = 1,
                                    parentuserid = NULL
                                ");
То все работает отлично. Как мне передать значение этих переменных в таблицу, если в них может содержаться NULL. Не хочу лепить несколько запросов под разные условия.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.01.2019, 14:39
Ответы с готовыми решениями:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in z:\home\localhost\www\php\mysql.php on line 16
Не могу подключиться к базе...устал все перепроверять переписывать и пересоздавать... Я недавно тока занялся php начал изучать курс...

Указание data = null для MySQL
Как сделать так что бы при insert-е если мы поле дата не заполнено в таблицу записывался как null? он по умолчанию пишет 0000-00-00 ...

При редактировании формы выбираю значение, а в MySQL уходит NULL
Приветствую! Есть таблица контрагентов: Если нажимаю на редактировать, то перехожу в форму, которая корректно вносит изменения,...

5
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,912
10.01.2019, 15:11
Цитата Сообщение от freshxmp3 Посмотреть сообщение
не проходит
В каком смысле не проходит? Если запрос вообще не работает, получить текст ошибки можно с помощью http://php.net/manual/ru/mysqli.error.php

Если нужно получить именно NULL в базе, тогда кавычки не нужны:
SQL
1
usersourceid = $source,
Но нужно быть уверенным, что в $source будет только число, иначе есть вероятность SQL-инъекций.
1
 Аватар для freshxmp3
29 / 21 / 9
Регистрация: 21.07.2018
Сообщений: 142
10.01.2019, 15:26  [ТС]
Цитата Сообщение от Jodah Посмотреть сообщение
В каком смысле не проходит?
В таблице пусто
Цитата Сообщение от Jodah Посмотреть сообщение
Если запрос вообще не работает, получить текст ошибки можно с помощью
я не могу получить текст ошибки, т.к. этот файл запускает яндекс после оплаты и передачи нужных данных. Т.е. если перейти на эту страницу, нужные переменные не будут получены и там ничего не произойдет, а сам яндекс не переходит на него, а только запускает процессы после оплаты. Конечно, я могу назначить нужные переменные для теста ошибки, но думаю тут дело в разном восприятии NULL для php и mysql. Без ковычек пробовал, тоже не работает.
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
10.01.2019, 15:33
Цитата Сообщение от freshxmp3 Посмотреть сообщение
этот файл запускает яндекс
  • сэмулируйте аналогичный запрос
  • логируйте ошибку в файл, а потом смотрите, что в него попадает
1
 Аватар для freshxmp3
29 / 21 / 9
Регистрация: 21.07.2018
Сообщений: 142
10.01.2019, 15:50  [ТС]
Цитата Сообщение от Dmitry Посмотреть сообщение
сэмулируйте аналогичный запрос
Хорошо, попробую

Добавлено через 10 минут
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
при таком
    $mysqli->query("INSERT INTO users SET
                                    email = '$email',
                                    password = '$password',
                                    registrationdate = now(),
                                    phonenumber = '$phonenumber',
                                    balance = 0,
                                    agentcomission = '$value',
                                    usersourceid = '$source', 
                                    usertypeid = 1,
                                    parentuserid =  '$userid' 
                                ");
и при таком (без ковычек)
    $mysqli->query("INSERT INTO users SET
                                    email = '$email',
                                    password = '$password',
                                    registrationdate = now(),
                                    phonenumber = '$phonenumber',
                                    balance = 0,
                                    agentcomission = '$value',
                                    usersourceid = $source, 
                                    usertypeid = 1,
                                    parentuserid =  $userid 
                                ");
 синтаксисе такая ошибка
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 'INSERT INTO users SET email = 'test@gmail.com', password ' at line 1
0
 Аватар для freshxmp3
29 / 21 / 9
Регистрация: 21.07.2018
Сообщений: 142
11.01.2019, 10:13  [ТС]
Другого решения так и не нашел. Решил сделать так:
PHP
1
2
3
4
5
6
7
8
9
$insert_users = "INSERT INTO users SET email = '$email',password = '$password',registrationdate = now(),phonenumber = '$phonenumber',balance = 0,agentcomission = '$value',usertypeid = 1";
if($userid != '' && $userid != NULL){
    $insert_users = $insert_users.",parentuserid = '$userid' ";
}
if($source != '' && $source != NULL){
    $insert_users = $insert_users.",usersourceid = '$source' ";
}   
 
$mysqli->query($insert_users);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.01.2019, 10:13
Помогаю со студенческими работами здесь

Php json_decode() возвращает NULL
Начну с того, что у меня есть массив чисел (они каждый раз разные от 1 до 400) на php: $GLOBALS = array(6, 26, 46, 66, 75, 95, 115, 135,...

Выводится php-код в браузер после установки php+apache+mysql
Навеяло отсюда: https://www.cyberforum.ru/php-beginners/thread839975.html Установила по инструкции...

Php и MySQL
Добрый день. Как сделать авторизацию? Клиент заходит на страницу авторизации, вводит login и password и попадает на свою страницу...

PHP и MySQL
Всем привет! Я только начал изучать PHP и возник такой вопрос. Никак не пойму как правильно сделать запрос в БД. Сейчас поясню. Мне нужно...

PHP и MySQL
Подскажите, в чем ошибка? foreach($header as $key => $value) { mysql_query("UPDATE `oplati` SET...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru