将字符串日期格式化为 mysql 日期

formatting string date into mysql date

我一直在这里阅读有关如何格式化字符串日期的主题,但它不会添加日期。相反,它只是添加 0000-00-00。为什么它不会格式化字符串日期?

$date 变量例如可以等于 10/10/2014

    $date = str_replace('.', '-', $undate);
    $timestamp = strtotime($date);
    $newdate = date("Y-m-d", $timestamp);
    $wpdb->query("INSERT INTO " . $your_db_name . "
        (date, time, hometeam, awayteam, score)
         VALUES ($newdate, '$time', '$opp1', '$opp2', '$score')");

如果您已经得到正确的日期格式Y-m-d,还需要引用那些:

VALUES ('$newdate', '$time', '$opp1', '$opp2', '$score')

根据@hakre 对下面评论的建议。它还有一个准备好的语句包装器,不妨将它用于更安全的查询:

$prepared_statement = $wpdb->prepare("
    INSERT INTO $your_db_name
        (date, time, hometeam, awayteam, score)
        VALUES ( %s, %s, %s, %s, %s )
    ", 
    $newdate 
    $time, 
    $opp1,
    $opp2,
    $score
);

$wpdb->query($prepared_statement);

如果此 $your_db_name(很可能是 table 名称)也是用户输入,您需要将其列入白名单,因为您无法绑定 table 名称。带有预定义 table 名称的简单 in_array() 就足够了。