-2

このクエリは文字列として表されています (読みやすくするために短縮されています)。

$query = 'INSERT INTO mytable (ke_voucher_date) VALUES (\'%s\')';

これが私が次にすることです:

$query = vsprintf($query, array_map('mysql_real_escape_string', $params));
mysql_query($query);

$params は、保存する必要があるすべての値を保持する配列です。この場合は (短縮されているため) dd.mm.yyyy (21.04.2012) 形式の日付のみです。結果は、たとえば 21.04.2026 です。コード、アイデアの何が問題になっていますか? もしかして%s?

ありがとう!

4

1 に答える 1

1

「21.04.2012」は MySQL が好む形式ではありません。Y-m-d日付は常に のようにフォーマットする必要があります2012-04-21

MySQL はいくつかの形式で値を解釈しようとしますが、日付の部分は、月-日-年または日-月-ではなく、常に年-月-日の順序 (たとえば、'98-09-04') で指定する必要があります。他の場所で一般的に使用される年順 (たとえば、'09-04-98'、'04-09-98')。

于 2012-05-30T07:19:40.563 に答える