我是php的新手只是为了警告你。无论如何,我看了很多但看到我不太了解..我看不出怎么做这个.. 所以我有一个带有'日期'列的表格,我正在测试使用表格将值插入表格中...我想拥有它所以我可以在表格中分割日期,(例如月份: day:year)并将它们组合成一个值以插入'date'列。任何想法如何做到这一点?我试过implode()但是我不确定从表单中发送值的确切方式如此... 使用代码:
实际表格
<form action="submit.php" method="post" style="text-align: center; width: 550px; margin: auto;">
<!--Id: <input type="text" name="id"> -->
<div style="float: left;">Author: <input type="text" name="author"></div>
<div style="float: right;">Month: <input type="text" name="month" size="3">
Day: <input type="text" name="day" size="3">
Year: <input type="text" name="year" size="5"><br></div>
<textarea name="post" style="width: 550px; height: 100px;"></textarea><br>
<input type="submit">
</form>
</body>
Submit.php
<?php
mysql_connect('localhost','root');
mysql_select_db('apple');
$date = implode("-", "(month, day, year)");
$sql = "INSERT INTO blog (id, author, $date, post) VALUES ('$_POST[id]', '$_POST[author]', '$_POST[date]', '$_POST[post]')";
if (!mysql_query($sql))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
?>
答案 0 :(得分:2)
implode()
将数组作为其第二个参数:
$date = implode("-", array($_POST['year'], $_POST['month'], $_POST['day']));
您还可以使用sprintf()
:
$date = sprintf("%04d-%02d-%02d", $_POST['year'], $_POST['month'], $_POST['day']);
您的查询还存在两个问题。试试这个:
$sql = "INSERT INTO blog (id, author, `date`, post)
VALUES ('$_POST[id]', '$_POST[author]', '$date', '$_POST[post]')";
其他几点:
date
数据类型为YYYY-MM-DD
mysql_*
functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDO或MySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial。date
这个词。您应该尽量避免在保留字后命名列。这是在问问题。