5

我正在尝试使用准备好的语句为库应用程序插入日期时间。这是到目前为止的代码:

    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 

似乎没有显示任何错误。

任何帮助都可以。

更新:

它确实有效。我只是引用了错误的数据库。但我想为偶然发现这一点的新人添加一点结尾。

  1. 删除评论/答案中提到的所有评论,因为它们会弄乱您的字符串。

  2. 对于 DATETIME,请记住将数据类型指定为 String,因为 MySQL 仅识别 String 数据类型。如果您没有使用准备好的查询,这意味着您必须为值添加 '' 引号。

  3. 由于未指定时间,插入将导致日期 (2012-07-01 00:00:00) 格式。

  4. 两个 SQL 查询都有效。INSERT INTO tbl_name SET col_name = value 或 INSERT INTO tbl_name(col_name) VALUES (value) 工作。

4

2 回答 2

6

尝试这样的事情:

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();
于 2012-07-09T14:22:48.933 回答
-5

假设您的日期表单输入是一个名为“日期”的类型输入,这就是您要做的。在 php 类型中

$date = $_POST['date']

$query = "INSERT INTO `loan` SET
             `title` = (?), 
             `description` = (?), 
             `start_date` = ".$date. //Insert variable here
             "`end_date` = (?)"; 

我知道在一个单一类型的输入中插入日期不是一个好习惯,但我只是为了简单起见才使用这个例子。你可以找出自己的正确方法。

于 2012-07-09T14:24:27.907 回答