php - statements - Die NOW()-Funktion von Datetime funktioniert nicht mit vorbereiteten PDO-MYSQL-Anweisungen?




prepared statements sql injection (2)

Ich habe einen timetable die Datenbanktabelle mit einem DATETIME Feld namens created_on .

created_on DATETIME,
notes VARCHAR(255) NOT NULL

Ich benutze die NOW() Funktion, um die aktuelle Zeit durch PDO vorbereitete Anweisungen einzufügen.

INSERT INTO timetable(created_on, note)
VALUES(?, ?);

Also nach dem Binden der Werte und Ausführen der vorbereiteten Anweisung ...

$notes ="This is a note...";
$values =array("NOW()", $notes);
$stm->execute($values);

... die Spalte created_on in der MySQL-Tabelle schreibt die erwarteten Daten, aber die Spalte created_on erzeugt ...

0000-00-00 00:00:00 

Ich möchte den Unix-Epochen-Zeitstempel nicht verwenden. Wie bekomme ich DATETIME in der NOW() Funktion um zu arbeiten?


Sie übergeben NOW() als String, nicht als mysql-Ausdruck.

benutze dies wie folgt:

INSERT INTO timetable(created_on, note)
VALUES(now(), ?);

NOW() als Parameter nicht übergeben,

INSERT INTO timetable(created_on, note) VALUES(NOW(), ?);

Sie müssen also nur die Notizen binden.

$values =array($notes);




prepared-statement