2016-10-22 3 views
-1

Aus irgendeinem Grund scheint das Format korrekt zu sein, und es wird nicht in meine Datenbank eingefügt. Wenn ich Date anstelle von DateTime eingestellt habe und nur Y-m-d verwende, funktioniert es gut für Jahr-Monat-Tag.Wie fügt man eine Datetime aus PHP oder PDO in eine MYSQL-Datenbank ein?

Tabellenspalte Datetime ist:

$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(); 

Es Echos ein Exempel zu:

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

Was ist der Typ der creation_date-Spalte in Ihrer Tabelle? versuchen Sie es mit Zeitstempel. – Sawalhah

+1

A ::: Einfach :. Wenn Sie "Y-m-d H: i: s" verwenden möchten, müssen Sie Ihre Spalte ändern, um DATETIME zu sein. –

+0

Ich habe das gerade versucht, aber nicht eingefügt ... Ich habe DateTime ursprünglich für das Ymd H: i: s verwendet, aber habe gerade versucht, den Zeitstempel, der ein anderes Format ist – Sol

Antwort

2

Sie sind wahrscheinlich an einem anderen Punkt versagt, ist es schwer, ohne zu sehen Ihre Tabellenschema zu erzählen. Hier ist ein vollständiges Beispiel der Tabellenerstellung und Einsatz enthält, versuchen, jeden Schritt zu duplizieren, wenn es noch nicht Ich empfehle:

  1. Versuchen die gleichen Anfragen von mysql Kommandozeilen-Client (mysql), um zu sehen, ob es ein Problem mit dem ist PHP-Bibliothek/Verbindung zur db
  2. Veröffentlichen Sie Ihr Tabellenschema, idealerweise mit allen Schritten, die ich unten zeige.

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) 

andere Sache zu beachten ist, dass Sie von reservierten Schlüsselwörter wie date wegbleiben sollte. Sieht nicht so aus, als wäre das dein Problem, aber etwas, auf das du aufpassen solltest.

+0

haben Ich werde das nächste Mal tun. – Sol

Verwandte Themen