2012-10-02 59 views
0

我已經在我的HTML和我的stu表中設置了dob類型「date」我將它作爲一個字符串,所以我將它作爲varchar,但是null被存儲爲默認值PHP準備語句的日期格式

檢查代碼...

/* 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

您確定$ dob變量包含所需的值嗎?也許在mysqli語句之前回顯它以檢查。 –

+0

顯示你如何定義'$ dob'。 – MrCode

回答

2

您發佈的代碼是OK(雖然我們無法看到,如果你真的​​查詢)。問題是我們看不到的代碼,您在那裏定義$dob

當你通過$dobbind_param()它應該是一個字符串,而不是一個對象或其他任何你可能擁有的東西。格式$dob作爲一個字符串,並將使它被插入到表中。

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

+0

我的錯誤兄弟...定義有問題 –