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

时间:2014-09-11 11:49:41

标签: 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 . "')");
}

我不知道我做错了什么,所以也许有些见解?或者,如果有人可以引用我的某些网站,那会很棒吗?因此,似乎没有什么对我有用!

HTML是:

<form method="post">
                        <b>Submit a downtime report*</b>: <input type="submit" name="submit" value="Report">
                    </form>

4 个答案:

答案 0 :(得分:1)

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

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

您可以找到更多日期功能here

我猜USER_NAME是一个不变的设置。

答案 1 :(得分:0)

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

http://php.net/manual/en/book.mysqli.php

它看起来非常全面。

答案 2 :(得分:0)

将此更改为

$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因此您应该像这样使用它。

答案 3 :(得分:0)

&#34;时间戳&#34;是一个MySQL关键字,因此被解释为数据类型而不是列名,然后语法没有任何意义。您可以通过使用反向标记转义列名来解决此问题。对于所有表名和列名,这是一种很好的做法,无论它们是否是关键字。因此,如下更改查询应该有效:

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