在 「form.php的」奇怪的行爲時的日期到數據庫
<html>
<body>
<form action="process.php" method="post">
<input type="text" name="dat" />
<input type="submit" value="submit" />
</form>
</body>
</html>
在 「process.php」:
<?php
echo $_POST['dat'];
mysql_connect("localhost", "root", "123456")
or die("can't connect");
mysql_select_db("st")
or die("can't selectdb");
$query = "INSERT INTO sts (time) VALUES (" . $_POST['dat']. " ) ";
$result = mysql_query($query)
or die(mysql_error());
$mysql_close();
?>
這給我0000-00-00數據庫,在類型「日期」的字段名稱「時間」中。 如果使用這樣的:
$time = explode("-", $_POST['dat']);
$query = "INSERT INTO sts (time) VALUES (" . date("m-d-Y", mktime(0, 0, 0, $time[1], $time[2], $time[0])). " ) ";
- >不工作,要麼
編輯: 我從「MDY」到「年月日」變更爲適當的語義,但它仍然無法正常工作
但是,如果我改變這樣的代碼:
$query = "INSERT INTO sts (time) VALUES ('1991-10-05') ";
它的工作原理。
任何人都可以解釋這對我嗎?
'日期( 「MDY」)=日期(「YMD! 「)'。你如何格式化'dat'? – Problematic
'$ query =「INSERT INTO sts(time)VALUES(」。$ _POST ['dat']。「)」;'小心避免這樣的代碼,這只是SQL注入的調用。 – SirDarius
請嘗試使用PDO並準備好語句。這不是更困難,你會花很少的時間來學習它。 –