0

私の問題は次のとおりです。

DoExpressCheckout() が実行されると、現在の時刻 + X 時刻を含むいくつかのデータをデータベースに保存する必要があります

データベースのフィールドのタイプは「datetime」に設定されています

このように strtotime 関数を使用しています

date_default_timezone_set('Europe/Rome');

$currentTime = date("Y-m-d");

$expected = date('Y-m-d',strtotime($currentTime.'+ 7 days'));

echo $expected;

$sql = "INSERT INTO acquisti (durata,prezzi,expectedtime) VALUES (".$str.",".$resArray['AMT'].",".$expected.")";
echo $sql;
mysql_query($sql) or die("Errore di inserimento");

ここで私は2つの問題があります:

1) $expected 変数を expectedtime フィールドに入れると、クエリは常にエラーを返します 2) 手動で入れた場合 (私が愚かだったかどうかを試すため)、0000-00-00 と書き込みます (ALLOW_INVALID_DATES を有効にしました)

助言がありますか?

どうもありがとう

4

2 に答える 2

1

フィールド タイプは「datetime」ですが、INSERT クエリを使用して日付のみを送信しています。

date('Ymd') の代わりに date('Ymd H:i:s') を使用するか、日付のみが必要な場合はフィールドのタイプを date に変更します。

于 2013-11-11T12:21:00.567 に答える
0

囲みに値を入れる:

$sql = "
    INSERT INTO acquisti (
        durata, prezzi, expectedtime
    ) VALUES (
        '$str', '{$resArray['AMT']}', '$expected'
    )
";

しかし、本当にプリペアド ステートメントの使用を開始する必要があります。


日時を渡したい場合は、 のように適切にフォーマットする必要がありますY-m-d H:i:s

PHP の例:

$expected = date_create('now')->modify('+7 day')->format('Y-m-d H:i:s');

MySQL の例:

$sql = "
    INSERT INTO acquisti (
        durata, prezzi, expectedtime
    ) VALUES (
        '$str', '{$resArray['AMT']}', DATE_ADD(NOW(), INTERVAL 7 DAY)
    )
";
于 2013-11-11T11:09:13.440 に答える