0

我在我的 html 中将 dob 设置为“日期”类型,在我的 stu 表中,我将其作为字符串,所以我将其设置为 varchar,但 null 被存储为默认值

检查代码...

 /* Prepared statement, stage 1: prepare */
if (!($stmt = $mysqli->prepare("INSERT INTO `stu` (`name`, `gender` , `dob`) VALUES (
?, ?, ? ) "))) {
echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

/* Prepared statement, stage 2: bind and execute */

if (!$stmt->bind_param('sss', $name , $gender , $dob )) {
echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
}
4

1 回答 1

2

您发布的代码是可以的(尽管我们看不到您是否真的execute()在查询)。问题是我们看不到的代码,在哪里定义$dob.

当您传递$dob给它时,bind_param()它应该是一个字符串,而不是一个对象或您可能拥有的任何其他东西。格式化$dob为字符串,这样就可以将其插入表中。

我还建议将您的字段更改为 aDATE而不是 a VARCHAR。您的 varchar 字段将接受任何字符串日期格式,但DATE需要一个字段YYYY-MM-DD

于 2012-10-02T12:32:02.070 回答