我正在尝试使用之前添加的php将某些值更新到数据库。我尝试添加的数据之一是日期值。虽然第一次添加值时,一切都正确添加。当我尝试更新日期值时,数据始终会更改为0000-00-00。所以我有以下问题:
1)我犯的错误是什么,日期没有正确更新?
2)如何将日期格式更改为DD / MM / YYYY?
这是更新代码(我知道我冒着SQL注入的风险,但此时我不关心):
<?php
//DISPLAY A LIST OF ALL Files
$sql = "select * from news";
$result = mysqli_query($mydb, $sql) or die(mysqli_error($mydb));
if(mysqli_num_rows($result)>0){
?>
<table class="table table-striped" >
<thead>
<td><b>NewsID</b></td>
<td><b>Headline</b></td>
<td><b>Story</b></td>
<td><b>Date</b></td>
<td><b>Actions</b></td>
</thead>
<tbody>
<?php while($rows=mysqli_fetch_array($result)){
$NewsID = $rows['NewsID'];
$Headline = $rows['Headline'];
$Story = $rows['Story'];
$Date= $rows['Date'];
?>
<tr>
<form method="post" id="action" action="<?php $_SERVER['PHP_SELF']?>">
<?php //if update button was pressed change all plain text to textfields to enable inline editing
if (isset($_POST['preUpdate']) && $_POST['NewsID']==$NewsID) { ?>
<td><?php echo $NewsID ?></td>
<td><input type="text" name="Headline" value="<?php echo $Headline?>"></td>
<td><input type="text"name="Story" value="<?php echo $Story?>"></td>
<td><input type="date" name="Date" value="<?php echo $Date?>"></td>
<td><input type="submit" name="update" value="Save"/></td>
<?php }
else { //These file will be displayed in plain text ?>
<td><?php echo $NewsID; ?> </a></td>
<td><?php echo $Headline; ?></td>
<td><?php echo $Story; ?></td>
<td><?php echo $Date; ?></td>
<td><input type="submit" name="preUpdate" value="Update"/>
<input type="submit" name="delete" value="delete"/></td>
<?php } // end of if update button was pressed ?>
<input type="hidden" name="NewsID" value="<?php echo $NewsID?>">
</form>
</tr>
<?php } //end of while loop that displays courses ?>
</tbody>
</table>
<?php }
答案 0 :(得分:1)
将表格中的日期数据类型视为date
。
mysql中date
的标准格式为YYYY-MM-DD
,因此您应该以相同的格式存储。您尝试以不同格式插入,因此日期将存储为0000-00-00
。您可以使用strtotime()
将其更改为所需格式;
存储时
$date = date("Y-m-d",strtotime($_POST['date']));
显示时
echo date("required format",strtotime($date));
有关格式,请参阅here