[英]Insert a datetime with prepared statement
我正在嘗試使用預准備語句為庫應用程序插入日期時間。 這是迄今為止的代碼:
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)工作。
嘗試這樣的事情:
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();
假設您的日期的表單輸入是名為“date”的類型輸入,這就是您的操作。 在PHP類型
$date = $_POST['date']
$query = "INSERT INTO `loan` SET
`title` = (?),
`description` = (?),
`start_date` = ".$date. //Insert variable here
"`end_date` = (?)";
我知道在一個單一類型輸入中插入日期並不是一個好習慣,但我只是為了簡單起見而使用這個例子。 你可以找到自己的正確方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.