我使用方法从页面发布数据,然后像这样插入到表中`
$b = $_POST['birth'];
//when i write echo $b; it prints 2013-10-13, i normally get data from page
$query = "INSERT INTO MEMBERS VALUES" .
"('$firstname', '$lastname', $b, '$login', '$password')";
if (!mysql_query($query, $db_server))
echo "INSERT failed: $query<br />" . mysql_error() . "<br /><br />";
我的 table 是
f_name VARCHAR(32) NOT NULL,
l_name VARCHAR(32) NOT NULL,
birthday DATE NOT NULL,
login_id VARCHAR(32) NOT NULL,
password VARCHAR(32) NOT NULL,
PRIMARY KEY (login_id)
但它设置时间为 0000-00-00,不知道为什么。
最佳答案
在 MySQL 中,将每个数据放在引号(单引号或双引号)中时,您可能永远不会出错。
$query = "INSERT INTO MEMBERS VALUES" .
"('$firstname', '$lastname', $b, '$login', '$password')";
$b
应该用单引号引起来。它是一个日期字符串。如果你不把它放在引号中,MySQL 可能会计算“2013 减 10 减 13”,得到 1990 并认为:多么愚蠢的日期值,我会用“0000-00-00”来表示下一个最好的猜测,因为我不能使用 NULL。
关于php - mysql 中的日期设置为 0000-00-00,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19348086/