php准备语句的日期格式

时间:2012-10-02 11:58:41

标签: php mysql

我在我的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;
}

1 个答案:

答案 0 :(得分:2)

您发布的代码是正常的(虽然我们无法查看您实际上是execute()查询。问题是我们无法看到的代码,您在其中定义$dob

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

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