1

したがって、PHPMyAdminを使用してMySQLに次のような列があります

PHPMyAdmin ショット

PHPMyAdmin を介してテーブルに挿入し、時間列に何も入力しないと動作し、時間を入力しますが、次のスクリプトを使用して PHP を介して挿入すると、

mysql_query("INSERT INTO `products` 

     VALUES ('', '$title', '', '$photo', '$price', '$details', '$description_short', '$description', '$dimensions', '$colour', '$scatid', '$type', '$brand', 'Y', '$size')") ;  

(3番目の「」は時間列です)タイムスタンプを0000-00-00 00:00:00としているようです

私は周りを見回しましたが、他のスタックオーバーフローの投稿を見て、すべてを正しく行っているようです。

よろしくお願いいたします。

4

6 に答える 6

2

あなたはそれを空白にしてしまったので''

現在のタイムスタンプにしたい場合、クエリは次のようにする必要があります

INSERT INTO products(list of column_name except time column_name) values (values of list of columns present in column list)

NOW()データベースに日付と時刻を挿入するためにも使用できます

于 2013-04-29T10:18:37.617 に答える
2

使用しないでください '' 使用に問題がある可能性があります

NOW()
于 2013-04-29T10:19:12.700 に答える
1

タイムスタンプ列内に空白 (0) の値を挿入しています。

あなたはできる:

1 - タイムスタンプ列を除外するようにクエリを変更します。

(foo、bar) 値 ("val1"、"val2") に挿入します。

2 - 値内の 3 番目の位置で "" を CURRENT_TIMESTAMP に置き換えます

于 2013-04-29T10:22:17.160 に答える
1

実際には 2 つのオプションがあります。

オプション1:

次のように、明示的に「CURRENT_TIMESTAMP」(または他の人が言っているように「NOW()」)を使用します。

"INSERT INTO `products` VALUES ('', '$title', 'CURRENT_TIMESTAMP', '$photo', '$price', '$details', '$description_short', '$description', '$dimensions', '$colour', '$scatid', '$type', '$brand', 'Y', '$size')"

オプション 2:

デフォルト値を暗黙的に使用します。これを使用するには、挿入する列 (テーブル名「products」とキーワード VALUES の間) を指定し、列リストと値リストの両方でタイムスタンプ列をスキップする必要があります。

私は個人的にデバッグ目的でオプション 2 を好みます (db スキーマを見なくても、どの列がどの値に対応しているかをすぐに確認できます)。

于 2013-04-29T10:22:57.100 に答える