0

我的问题如下:

执行 DoExpressCheckout() 时,我必须将一些数据保存到数据库,包括当前时间 + X 时间

数据库的字段类型设置为“日期时间”

我以这种方式使用 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");

这里我有两个问题:

1) 将 $expected 变量放入 expectedtime 字段时,查询总是返回错误 2) 如果我手动输入(只是为了尝试我是否愚蠢),它会写给我 0000-00-00(我已启用 ALLOW_INVALID_DATES)

有什么建议么?

非常感谢

4

2 回答 2

1

您的字段类型是“日期时间”,但您只使用 INSERT 查询发送日期。

您需要使用 date('Ymd H:i:s') 而不是 date('Ymd'),或者如果您只需要日期,请将字段的类型更改为 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 回答