Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2017, 16:07   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,893
Вопрос Установить пустую дату

Хочу, чтобы поле с датой было пустым, но при такой реализации получаю 0000-00-00 00:00:00
Код:
<?php
switch ($_POST['status']) {
	case "Отказ":
		$sdate=get_Datetime_Now();
		break;
	case "В процессе":
		$sdate=NULL;
		break;		
}
// Обновляем данные заявки
$query = "UPDATE `table1` SET
		 `date_completion` = '".$sdate."'
		 WHERE `uid` = '".$_POST['rid']."'";
$result = mysql_query($query) or die ("ERROR: ".mysql_error());
echo "Stored";
?>
Помогите, пожалуйста, с решением данной задачи.
Shouldercannon вне форума Ответить с цитированием
Старый 05.10.2017, 16:12   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так а поле в БД nullable?
Цитата:
Сообщение от Shouldercannon Посмотреть сообщение
WHERE `uid` = '".$_POST['rid']."'"


https://en.wikipedia.org/wiki/Prepar...tement#PHP_PDO

https://www.google.com/search?q=sql+injection

www.phptherightway.com/#databases / http://getjump.me/ru-php-the-right-w...BD%D1%8B%D1%85
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 05.10.2017, 19:24   #3
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,893
По умолчанию

Таблица
Код:
CREATE TABLE IF NOT EXISTS `table1` (
  `uid` int(10) unsigned NOT NULL auto_increment,
  `date_completion` datetime default NULL,
  PRIMARY KEY  (`uid`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
Как можно такое же значение (Ноль) отправить с помощью SQL?
Изображения
Тип файла: png timenull.png (24.8 Кб, 222 просмотров)
Shouldercannon вне форума Ответить с цитированием
Старый 05.10.2017, 19:37   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Оно не NULL потому что
Код:
echo "Hello, " . NULL;
в общем в любом случае так нельзя писать запросы, используйте prepared statement в PDO и т.п.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 06.10.2017, 06:46   #5
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,893
По умолчанию

Код:
CREATE TABLE IF NOT EXISTS `table1` (
  `uid` int(10) unsigned NOT NULL auto_increment,
  `date_completion` datetime default NULL,
  PRIMARY KEY  (`uid`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
При добавлении новой записи дата равна NULL
Код:
<?php
$query = "INSERT INTO `requests` VALUES (NULL,
										 NULL)";
$result = mysql_query($query) or die ("ERROR: ".mysql_error());
?>
Осталось только узнать как это повторить
Shouldercannon вне форума Ответить с цитированием
Старый 06.10.2017, 07:27   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Прочитать и понять предыдущие сообщения.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 06.10.2017, 09:31   #7
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,893
По умолчанию

Решено
Код:
$query = "UPDATE `tabl1` SET";
if ($sdate != NULL) {
	$query .= "`date_completion` = '".$sdate."'";
}
else {
	$query .= "`date_completion` = NULL";
}
$query .= " WHERE `uid` = '".$_GET['rid']."'";
$result = mysql_query($query) or die ("ERROR: ".mysql_error());
Shouldercannon вне форума Ответить с цитированием
Старый 10.10.2017, 01:06   #8
klaus_nuk
Пользователь
 
Регистрация: 10.10.2017
Сообщений: 25
По умолчанию

Поле с датой не может быть пустым. Либо меня на text, либо 0000-00-00 и т.д. Особенности БД
klaus_nuk вне форума Ответить с цитированием
Старый 10.10.2017, 10:17   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

klaus_nuk, во-первых, вопрос уже решён (это если Вы не заметили).

а во-вторых,
Цитата:
Сообщение от klaus_nuk Посмотреть сообщение
Поле с датой не может быть пустым
пустым не может. но оно может быть null, что, в общем, TC и использует.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.10.2017, 11:54   #10
Ottava
Форумчанин
 
Регистрация: 05.09.2017
Сообщений: 157
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
но оно может быть null, что, в общем, TC и использует.
Только ТС это использует некорректно, и его запрос к БД может сработать неправильно. Вот тест работы его "аналога" функции is_null():
Код:
$arr = array(null, true, false, 0, 1, '', "\0");
foreach ($arr as $i => $val) {
  echo $i.': '.($val != NULL  ?'!='   :'==')
	.' / '.($val !==NULL  ?'!=='  :'===').'<br>';
  }
Вот результат:
Цитата:
0: == / ===
1: != / !==
2: == / !==
3: == / !==
4: != / !==
5: == / !==
6: != / !==
Безопасность с Content Security Policy

Последний раз редактировалось Ottava; 10.10.2017 в 11:59.
Ottava вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос возвращает пустую таблицу, если один из подзаросов возвращает пустую таблицу ArtInt SQL, базы данных 9 12.05.2010 15:40
программа позволяющая установить с клавиатуры новую дату и новое текущее время men73 Фриланс 1 11.06.2009 20:23
Установить програмно время и дату AleX CODER Общие вопросы Delphi 2 02.01.2009 13:51
Как установить дату создания файла vitalik007 Общие вопросы Delphi 1 11.12.2007 20:15