我有一个php脚本,它将一行添加到带有DATE格式列的db表中,例如2016年11月2日。
我的查询将数据添加到表中,如下所示:
$duser = $_POST['username'];
$tdate = date("Y-m-d");
//build query
$query = "
INSERT INTO emodata (
username,
date
) VALUES (
':duser',
':tdate'
)
";
// create tokens
$query_params = array(
':duser' => $duser,
':tdate' => $tdate
);
try
{
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch(PDOException $ex)
{
die("Failed to run query - $tdate : " . $ex->getMessage());
}
出于某种原因,mySQL似乎并不认为格式是正确的。我收到的错误是:
SQLSTATE [22007]:日期时间格式无效:1292日期值不正确:':tdate'对于列'日期'在第1行
我检查了php日期格式,它确实生成了YYYY-MM-DD格式,这是mysql DATE的正确格式...
你们认为这可能与准备好的声明和参数替换有关吗?如果是这样,有没有办法解决这个问题,还是必须使用其他形式的安全查询?