(在發佈之前,我在這裏查看了所有相關的許多問題,並調整了代碼,結果無效)。所以情況如下:我有一個書籍數據庫,我已經添加了一個日期字段(Bookdate)。現在,我想在以前的記錄,這我用下面的代碼做更新日期:PHP-SQL:日期不更新數據庫
$stamp = get_post($conn, 'stamp');
$stamp = date('Y-m-d H:i:s', strtotime($_POST[$stamp]));
(該get_post函數返回$conn->real_escape_string($_POST[$var])
)。然而,我輸入表單的日期從未在數據庫中得到更新,而是讀取1970-01-01 - 我知道它是Unix epoc的東西。我接受日期詳細信息,其格式爲:
Date <input type="text" name="stamp" value="<?php echo $row[8]; ?>">
$ row [8]這裏是我希望更新的Bookdate字段。
下面是SQL更新查詢的代碼塊。 請注意代碼適用於更新所有其他字段,但更新日期沒有任何影響 - 它仍然在1970-01-01,而我沒有更新的其他記錄站在0000-00-00。 Bookdate = NOW()在下面的查詢中很好地將字段更新爲當前日期。那麼,我傳遞的變量有什麼問題? $郵票。??希望對此有所幫助。
if ($_FILES['image2'])
{
$ed_author = get_post($conn, 'ed_author');
$ed_title = get_post($conn, 'ed_title');
$ed_category = get_post($conn, 'ed_category');
$ed_year = get_post($conn, 'ed_year');
$hid_isbn = get_post($conn, 'hid_isbn');
$stamp = get_post($conn, 'stamp');
$stamp = date('Y-m-d H:i:s', strtotime($_POST[$stamp]));
if($_FILES['image2']['error'] != UPLOAD_ERR_NO_FILE){
$filetmp = $_FILES["image2"]["tmp_name"];
$filename = $_FILES["image2"]["name"];
$filetype = $_FILES["image2"]["type"];
$filepath = "images/".$filename;
move_uploaded_file($filetmp, $filepath);
$query = "UPDATE classics
SET author='$ed_author', title='$ed_title',
`type`='$ed_category', `year`='$ed_year',
filename='$filename', filepath='$filepath',
filetype='$filetype', Bookdate='$stamp'
WHERE isbn='$hid_isbn'";
$result = $conn->query($query);
if (!$result) echo "EDIT with image failed: $query<br>" .
$conn->error . "<br><br>";
$result = $conn->query($query);
} else {
$query = "UPDATE classics
SET author='$ed_author', title='$ed_title',
`type`='$ed_category', `year`='$ed_year',
Bookdate='$stamp'
WHERE isbn='$hid_isbn'";
$result = $conn->query($query);
if (!$result)
echo "EDIT with image failed: $query<br>" . $conn->error . "<br><br>";
}
}
下面是發生在該日期的形式(還列出了已經存在):
<form action="news.php" method="post" enctype="multipart/form-data"> <pre>
Author <input type="text" name="ed_author" value="<?php echo $row[0]; ?>">
Title <input type="text" name="ed_title" value="<?php echo $row[1]; ?>">
Category <input type="text" name="ed_category" value="<?php echo $row[2]; ?>">
Year <input type="text" name="ed_year" value="<?php echo $row[3]; ?>">
ISBN <input type="text" name="hid_isbn" value="<?php echo $row[4]; ?>"readonly>
Date <input type="text" name="stamp" value="<?php echo $row[8]; ?>">
<input type="hidden" name="oldfilename" value="<?php echo $row[5]; ?>">
<input type="hidden" name="oldfilepath" value="<?php echo $row[6]; ?>">
<input type="hidden" name="oldfiletype" value="<?php echo $row[7]; ?>">
<input type="file" name="image2">
<input type="hidden" name="edit" value="yes">
<input type="submit" name="btn2" value="SUBMIT EDIT">
</pre></form>
並且爲了清楚,這裏的get_post功能:
function get_post($conn, $var)
{
return $conn->real_escape_string($_POST[$var]);
}
UPDATE:var_dump在get_post後顯示$ _POST ['stamp']爲NULL;也如下錯誤:
說明:未定義指數:2000-01-01在C:\ XAMPP \ htdocs中\實驗\ woldofbooks \ news.php上線69:$郵票= get_post($康恩,「圖章「);的var_dump($ _ POST [$郵票]);
注意:未定義的索引:2000-01-01在C:\ xampp \ htdocs \ experiment \ woldofbooks \ news.php上第70行:$ stamp = date('Ymd H:i:s',strtotime($ _POST [$郵票]));的var_dump($ _ POST [$郵票]);
說明:未定義指數:1970-01-01 01:00:00在C:\ XAMPP \ htdocs中\實驗\ woldofbooks \上線news.php 70
這是你的數據庫中的列的類型? – Paflow
Bookdate是一個日期字段。 –
也可能轉儲$ _POST [$ stamp]看起來像 – Paflow