我正在尝试使用预准备语句为库应用程序插入日期时间。这是迄今为止的代码:
global $dbh;
$query = "INSERT INTO `loan` SET
`title` = (?), //example value - Lord of the Rings
`description` = (?), //example value - Trilogy
`start_date` = (?), //example value 20120701 in String datatype
`end_date` = (?)"; //example value 20120702 in String datatype
$statement = $dbh->prepare($query);
$statement->bind_param("ssss", $title,$description,$startDate,$endDate);
$statement->execute();
print $statement->error; //to check errors
$statement->close();
但是,我似乎无法将此值插入行中。同时,莫名其妙
print $statement->error
似乎没有显示任何错误。
任何帮助都会真的有用。
更新:
它确实有效。我只是引用了错误的数据库。但我想为那些偶然发现的新人添加一点outro。
删除评论/答案中提到的所有评论,因为它们会弄乱你的字符串。
对于DATETIME,请记住将数据类型指定为String,因为MySQL只识别String数据类型。如果您没有使用准备好的查询,这意味着您必须为值添加“引号”。
插入将导致日期(2012-07-01 00:00:00)格式,因为未指定时间。
两个SQL查询都有效。 INSERT INTO tbl_name SET col_name = value或INSERT INTO tbl_name(col_name)VALUES(value)work。
答案 0 :(得分:5)
尝试这样的事情:
global $dbh;
$query = "INSERT INTO loan (title, description, start_date, end_date) VALUES (?,?,?,?)"
$statement = $dbh->prepare($query);
$statement->bind_param("ssss", $title,$description,$startDate,$endDate);
$statement->execute();
print $statement->error; //to check errors
$statement->close();
答案 1 :(得分:-3)
假设您的日期表单输入是名为“date”的类型输入,这就是您的操作。在php类型
$date = $_POST['date']
$query = "INSERT INTO `loan` SET
`title` = (?),
`description` = (?),
`start_date` = ".$date. //Insert variable here
"`end_date` = (?)";
我知道在一个单一类型的输入中插入日期并不是一个好习惯,但我只是为了简单起见而使用这个例子。你能找到自己的正确方法。