我的MySQLi/PHP代码有问题吗?

我的MySQLi/PHP代码有问题吗?,php,mysqli,Php,Mysqli,我对所有这些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 . "')"); } 我不知道我做错了什么,所以也许有一

我对所有这些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>

提交停机报告*:

至于有用的资源,您是否尝试过官方文档

它似乎相当全面

将此更改为

$mysqli->query("INSERT INTO down (timestamp, username) VALUES ('" . $stamp . "', '" . USER_NAME . "')");

原因:
timestamp
也是SQL中的
类型,因此您应该这样使用它。

您不必在PHP中使用date()函数。您可以在MySQL中使用NOW()或CURRENT_TIMESTAMP()

你可以找到更多的日期函数

我猜USER_NAME是一个常量,它已经设置好了

“timestamp”是MySQL关键字,因此被解释为数据类型而不是列名,因此语法没有任何意义。可以通过使用反勾号转义列名来解决此问题。顺便说一句,这对于所有表名和列名都是一个很好的实践,不管它们是否是关键字。因此,按以下方式更改查询应该是可行的:

$mysqli->query("INSERT INTO `down` (`timestamp`, `username`) VALUES ('" . $stamp . "', '" . USER_NAME . "')");

你在提交表格吗?如果是这样,请分享html也。也让你的问题更清楚。您面临的问题是什么?请尝试此日期格式,而不是
date('Y-m-dh:i:s')如果您可以编辑数据库结构,最好的方法可能是将当前时间戳设置为默认值user\u NAME确实已设置。
$mysqli->query("INSERT INTO down (`timestamp`, `username`) VALUES (NOW(), '" . USER_NAME . "')");
$mysqli->query("INSERT INTO `down` (`timestamp`, `username`) VALUES ('" . $stamp . "', '" . USER_NAME . "')");