Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MySQL - Не получается вставить текущую дату в таблицу MySql?

Ответить
Настройки темы
MySQL - Не получается вставить текущую дату в таблицу MySql?

Пользователь


Сообщения: 73
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте. Вроде простой вопрос, но я уже всю клавиатуру разбил, решая его.
Нужно просто занести текущее время в текстовом формате в БД MySql. Делаю так:
PHP код: Выделить весь код

$my_time=date"H:i:s" );

    
$my_time=(string)($my_time);//на всякий случай, у нас же текстовое поле
     
mysql_query("UPDATE logs SET time='" $my_time."' WHERE login='$l' ") or die(mysql_error()); 

Я уже и с кавычками извращался, по всякому пробовал, например вот так
PHP код: Выделить весь код

mysql_query("UPDATE logs SET time='$my_time'  WHERE login='$l' ") or die(mysql_error()); 


в общем, разные комбинации пробовал.
В результате в БД в поле time ничего не меняется, так и остаётся NULL, идущий по умолчанию.
Что это за глюк такой?

Отправлено: 05:31, 15-03-2015

 

Ветеран


Сообщения: 1404
Благодарности: 135

Профиль | Отправить PM | Цитировать


У вас есть база данных. База данных представляет собой набор таблиц. В частном случае у вас есть таблица logs. Вы не написали структуру таблицы logs и типы ее параметров, задавая вопрос. Затем, я не понимаю, откуда при запросе в базу данных база данных узнает, какому логину нужно изменить время? Какой тип формата хранения времени в колонке time базы данных? Задавая вопрос, нужно было бы указать, каким запросом создана таблица logs или ее колонки..

-------
Ehhh.. what's up, doc?..

Это сообщение посчитали полезным следующие участники:

Отправлено: 05:47, 15-03-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 73
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата mrcnn:
У вас есть база данных. База данных представляет собой набор таблиц. В частном случае у вас есть таблица logs. Вы не написали структуру таблицы logs и типы ее параметров, задавая вопрос. Затем, я не понимаю, откуда при запросе в базу данных база данных узнает, какому логину нужно изменить время? Какой тип формата хранения времени в колонке time базы данных? Задавая вопрос, нужно было бы указать, каким запросом создана таблица logs или ее колонки.. »
Таблица logs была создана не запросом из РНР, а через phpmyadmin.
Насчёт логина - переменная $l правильно определяется (проверено) и передаётся через переменную сессии, я уже много раз успешно использовал эту переменную.
Далее, другие запросы UPDATE и INSERT успешно работают на этой страничке и в том числе успешно работают с таблицей logs.
Тут дело не в таблице. Если заменить значение $my_time на простую строку, то всё успешно обновляется в БД. Проблема кроется, наверное, где-то в функциях определения даты и времени. Вернее - в передаче значения времени из РНР в БД. Собака где-то там зарыта.
Формат поля time - VARCHAR.

Отправлено: 06:09, 15-03-2015 | #3


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


А если вывести строку запроса через echo, скопировать и выполнить в phpMyAdmin? Уж он-то скажет, что MySQL не принимает. Может быть $my_time неверно формируется и там NULL подставляется на самом деле?

Я добавлял обратные кавычки к именам полей и таблиц, чтобы оно заработало:
PHP код: Выделить весь код

$sql "UPDATE `logs` SET `time`='$my_time'  WHERE `login`='$l' ";
mysql_query($sql); 

И кроме того, хранение в формате datetime выглядит более предпочтительным. Над ним потом удобнее запросы выборки исполнять.
PHP код: Выделить весь код

$today date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (формат MySQL DATETIME) 



Отправлено: 06:58, 15-03-2015 | #4


Ветеран


Сообщения: 1404
Благодарности: 135

Профиль | Отправить PM | Цитировать


date возвращает значение в виде строки, т.е. преобразование в строку необязательно. Проблема с запросом, наверное. Попробуйте добавить точку с запятой перед закрытием строки кавычкой.

-------
Ehhh.. what's up, doc?..


Отправлено: 08:30, 15-03-2015 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MySQL - Не получается вставить текущую дату в таблицу MySql?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Копирование файлов за текущую дату! erorr Скриптовые языки администрирования Windows 14 27-10-2016 22:13
CMD/BAT - Скачивание BIK банков на текущую дату и распаковка файлов nasedkin Скриптовые языки администрирования Windows 2 24-12-2014 14:05
CMD/BAT - [решено] ходить по каталогам не глубже второго вложенного и считать файлы за текущую дату DeGReeS Скриптовые языки администрирования Windows 8 26-08-2013 17:43
Любой язык - [решено] Как получить текущую дату и время в интернете? white155 Скриптовые языки администрирования Windows 8 29-05-2012 04:00
CMD/BAT - копирование файлов за текущую дату с сервера на сервер 6a6yko Скриптовые языки администрирования Windows 10 21-06-2011 13:00




 
Переход