将正确的日期格式从PHP传递到MySQL


Passing the correct date format from PHP to MySQL

下面的PHP代码根据用户从下拉列表中选择的日期,与今天或昨天的日期相呼应。它的回声很好,但未能正确地击中DB。我选择的所有其他数据都能很好地发送。

我试着吸收和解释我在网上找到的所有答案,但我似乎无法破解。提前谢谢。

<?php
if ($_POST["Date"]=='Today') {    
    $d=strtotime("today");
echo date('Y/m/d', $d) . "<br>";
} else {
$d=strtotime("yesterday");
echo date('Y/m/d', $d) . "<br>"; 
}
?>
$sql = "INSERT INTO `Basis Trades` ( `Date`,........etc
'{$mysqli->real_escape_string($_POST['Date'])}',

假设您的日期存储在DATE数据类型中,而不是VARCHAR,那么您提供的日期格式是错误的。

您正试图插入一个日期,其中只是一个单词(今天,昨天)。你忘了转换它,你只是把它回声出来。即便如此,它也不会起作用,因为您建议的格式是YYYY/MM/DD。MySQL应为YYYY-MM-DD。

您的代码"固定"

if ($_POST["Date"]=='Today') {    
    $d=strtotime("today");
} else {
    $d=strtotime("yesterday");
}
$date = date('Y-m-d', $d); 
?>
$mysqli->real_escape_string($date)