我是MySQLi的新手,似乎找不到任何对我有用的信息。我尝试了以下代码,但没有成功:
if(isset($_GET['submit']))
{
$stamp = date("D M d, Y G:i a");
$mysqli->query("INSERT INTO down (timestamp, username) VALUES ('" . $stamp . "', '" . USER_NAME . "')");
}
我不知道自己做错了什么,所以也许有一些见解?或者,如果有人能介绍我一些网站,那就太好了?因此,似乎什么都不适合我!
HTML是:
<form method="post">
<b>Submit a downtime report*</b>: <input type="submit" name="submit" value="Report">
</form>
您不必在PHP中使用date()函数。您可以在MySQL 中使用NOW()或CURRENT_TIMESTAMP()
$mysqli->query("INSERT INTO down (`timestamp`, `username`) VALUES (NOW(), '" . USER_NAME . "')");
更多日期功能,你可以在这里找到
我猜USER_NAME是一个常量,它是设置的。
关于有用的资源,您尝试过官方文档吗?
http://php.net/manual/en/book.mysqli.php
它似乎相当全面。
将其更改为
$mysqli->query("INSERT INTO down (timestamp, username) VALUES ('" . $stamp . "', '" . USER_NAME . "')");
至
$mysqli->query("INSERT INTO down (`timestamp`, `username`) VALUES ('" . $stamp . "', '" . USER_NAME . "')");
原因:timestamp
也是SQL中的type
,因此您应该这样使用它。
"timestamp"是MySQL关键字,因此被解释为数据类型而不是列名,因此语法没有任何意义。可以通过使用反勾号转义列名来解决此问题。顺便说一句,这对于所有表名和列名都是一种很好的做法,无论它们是否为关键字。因此,按以下方式更改查询应该有效:
$mysqli->query("INSERT INTO `down` (`timestamp`, `username`) VALUES ('" . $stamp . "', '" . USER_NAME . "')");