2014-09-11 18 views
0

我是新來的這一切的MySQLi,我似乎無法找到適合我任何有用的信息。我已經試過下面的代碼,但無濟於事:有沒有我的MySQLi/PHP代碼的概率?

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> 
+0

您是否提交FORM?如果是這樣,請分享html。也讓你的問題更清楚。你面臨的問題是什麼? – Jenz 2014-09-11 11:54:19

+0

嘗試這個日期格式,而不是'date('Ymd H:i:s');' – T00rk 2014-09-11 11:54:22

+0

添加HTML到OP – Reverb 2014-09-11 11:57:15

回答

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因此你應該使用它這樣的。

1

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

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

更多日期函數,你可以找到here

我猜USER_NAME是一個常數,它的設置。

+0

如果你可以編輯數據庫結構,也許最好的辦法是設置CURRENT_TIMESTAMP爲默認值 – T00rk 2014-09-11 11:57:41

+0

是的,這是一個選項以及.. – Robert 2014-09-11 11:58:04

+0

確實已設置USER_NAME。 – Reverb 2014-09-11 11:58:55

0

「timestamp」是一個MySQL關鍵字,因此被解釋爲數據類型而不是列名,然後語法沒有任何意義。您可以通過使用反標來轉義列名解決此問題。順便說一下,這對所有表名和列名都是一個很好的做法,不管它們是否是關鍵字。因此,改變查詢如下應該工作:

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