我在我的html和我的stu表中将dob设置为类型“date”我将其作为字符串使我将其设为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;
}
答案 0 :(得分:2)
您发布的代码是正常的(虽然我们无法查看您实际上是execute()
查询。问题是我们无法看到的代码,您在其中定义$dob
。
当您将$dob
传递给bind_param()
时,它应该是一个字符串,而不是一个对象或您可能拥有的任何其他内容。将$dob
格式化为字符串,这样就可以将其插入表格中。
我还建议您将字段更改为DATE
而不是VARCHAR
。您的varchar字段将接受任何字符串日期格式,但DATE
字段将需要YYYY-MM-DD
。