Как вставить datetime из PHP или PDO в базу данных MYSQL?

По какой-то причине формат кажется правильным, и он не будет вставлен в мою базу данных. Если у меня установлено значение Date вместо DateTime и используется только Y-m-d, это прекрасно работает для года-месяца-дня.

Столбец таблицы — дата-время:

$creation_date = date("Y-m-d H:i:s");

$sql = "INSERT INTO table SET creation_date='$creation_date'";

$stmt = $con->prepare($sql);
$data = $stmt->execute();

Это напоминает пример:

INSERT INTO table SET creation_date='2016-10-22 20:42:11'

-1

Решение

Вы, вероятно, терпите неудачу в какой-то другой момент, трудно сказать, не видя схему таблицы. Вот полный пример, который включает в себя создание и вставку таблицы, попробуйте дублировать каждый шаг, если он все еще не выполняется, я рекомендую:

  1. Попробуйте те же запросы от клиента командной строки mysql (mysql), чтобы увидеть, если это проблема с библиотекой PHP / подключение к БД
  2. Опубликуйте схему таблицы, в идеале со всеми шагами, которые я покажу ниже.

localhost/test> CREATE TABLE datetest (id smallint(5) unsigned NOT NULL AUTO_INCREMENT, \
ctime DATETIME NOT NULL, PRIMARY KEY(id));
Query OK, 0 rows affected (0.03 sec)

localhost/test> SHOW CREATE TABLE datetest;
+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                                                                             |
+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| datetest | CREATE TABLE `datetest` (
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`ctime` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1 |
+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

localhost/test> INSERT INTO datetest SET ctime='2016-10-22 20:42:11';
Query OK, 1 row affected (0.00 sec)

localhost/test> SELECT * FROM datetest;
+----+---------------------+
| id | ctime               |
+----+---------------------+
|  1 | 2016-10-22 20:42:11 |
+----+---------------------+
1 row in set (0.00 sec)

Следует также отметить, что вам следует избегать зарезервированных ключевых слов, таких как date, Не похоже, что это твоя проблема, но есть на что обратить внимание.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]