5

timetableというDATETIMEフィールドを持つデータベース テーブルがありますcreated_on

created_on DATETIME,
notes VARCHAR(255) NOT NULL

関数を使用して、NOW()PDO 準備済みステートメントを介して現在の時刻を挿入します。

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

したがって、値をバインドして準備済みステートメントを実行した後...

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

... notesMySQL テーブルの列は期待されるデータを書き込みますが、created_on列は生成します...

0000-00-00 00:00:00 

Unix エポック タイムスタンプを使用したくありません。DATETIMEでは、 NOW()関数を機能させるにはどうすればよいでしょうか。

4

3 に答える 3

10

NOW()パラメータとして渡さないでください。

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

そのため、メモをバインドするだけで済みます。

$values =array($notes);
于 2012-12-31T00:41:55.780 に答える
2

NOW()mysql式ではなく、文字列として渡しています。

次のように使用します。

INSERT INTO timetable(created_on, note)
VALUES(now(), ?);
于 2012-12-31T00:41:16.557 に答える
1

キーワード NOW() は MySQL の予約変数であり、SQL 定義に入る必要があり、バインドできません。すべての SQL キーワード (SELECT、FROM、WHERE、列名など) はバインドできず、SQL 宣言に入る必要があります。

于 2017-06-28T03:30:47.517 に答える