1

我从页面获取方法发布数据,并像这样插入表中

$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 />";

我的桌子是

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,不知道为什么。

4

2 回答 2

1

在 MySQL 中,当您将每个数据放在引号中(单引号或双引号)时,您可能永远不会出错。

$query = "INSERT INTO MEMBERS VALUES" .
"('$firstname', '$lastname', $b, '$login', '$password')";

$b应该是单引号。它是一个日期字符串。如果不加引号,MySQL 可能会计算“2013 减 10 减 13”,得到 1990 并认为:多么愚蠢的日期值,我将取“0000-00-00”表示下一个最好的猜测,因为我不能使用 NULL。

于 2013-10-13T17:52:38.020 回答
0

正如 Glavić 所说,Date 类型必须是 php的字符串形式$consulta="INSERT INTO registro(Id,Fecha,Cliente,Producto,Conductor,Remolque,Viaja) VALUES(Null,'$Fecha','{$Cliente}','{$Producto}','{$Conductor}','{$Remolque}','{$Viaja}')";,因此,它必须在单引号 ' $ date' 之间给出,并且所有查询都必须使用双引号,它对我来说是这样的:fecha ya 日期类型。见后价值观,'$fecha'

于 2014-03-30T04:54:54.677 回答