2014-10-19 84 views
-2

第一個問題:出現日期在mysql中的0000-00-00以及如何添加一個錯誤日誌?簡單的通訊操作

FILES:

CONFIG.PHP

<?php 

$db['server'] = 'xxxxxx'; 
$db['user']  = 'xxxxx'; 
$db['password'] = 'xxxxx'; 
$db['dbname'] = 'xxxxx'; 

$conn = mysql_connect($db['server'],$db['user'],$db['password']); 
mysql_select_db($db['dbname'],$conn); 
?> 

adiciona.php

<?php 

include 'config.php'; 

$email = $_POST['email']; 
$data = date("d/m/Y \à\s H:i:s"); 
$query = "INSERT INTO `email` (`email` , `data`, '')"; 

?> 

現在的通訊代碼:

    <!-- Newsletter Form --> 
        <div id="newsletter_form" class="col-md-12"> 
         <div class="clearfix"> 
          <form id="subscribe-form" class="subscribe-form" action="/adiciona.php" method="post"> 
           <input type="email" name="email" class="subscribe-input" placeholder="Escreva seu endereço de email..."> 
           <button type="submit" class="subscribe-submit">Inscrever-se</button> 
          </form> 
         </div> 
        </div> 
       </div> <!-- /.row --> 
+1

因此,換句話說,你要我們使它工作爲你。工作=編碼,錯誤...不。 --- *「如果你想要谷歌它」*你也可以。關閉過於寬泛。 – 2014-10-19 00:33:14

+0

這不是一個「爲我而做的網站」。閱讀基本規則http://stackoverflow.com/help/how-to-ask您已經是會員超過一年了,仍然不明白嗎?這怎麼可能呢? – walther 2014-10-19 00:34:00

+0

我並沒有要求你做所有的工作,一個教程就足夠了。 但是,無論如何,謝謝! – user2415711 2014-10-19 00:36:37

回答

1

您正在使用:

$query = "INSERT INTO `email` (`email` , `data`, '')"; 

(失蹤VALUES和變量)
其中應閱讀:

$query = "INSERT INTO `email` (`email` , `data`, '') VALUES ('$email', '$data')"; 

如果emaildata是列名。

但是,我不確定您爲什麼在查詢中使用''

所以,你可以做/試試這個:

$query = "INSERT INTO `email` (`email` , `data`) VALUES ('$email', '$data')"; 

添加or die(mysql_error())mysql_query()這將標誌着一個錯誤。

如果這是因爲您將它用作AUTO_INCREMENT列的空值,那麼您需要詳細說明。

標準的INSERT語法是:

INSERT INTO table (column_1, column_2) VALUES ('value_1', 'value_2') 

請過目說明書上MySQL.com:


你現在的代碼是開放的到SQL injection。使用mysqli with prepared statementsPDO with prepared statements


至於Date appears 0000-00-00爲什麼不使用NOW()而不是你現在使用的東西。

實施例:

$query = "INSERT INTO `email` (`email`, `data`) VALUES ('$email', NOW())"; 

,並確保該列是正確DATEDATETIME類型。

然而,MySQL是尋找一個Y-m-d和你使用d/m/Y這將解釋爲什麼它們都是零,包括使用\à\s$data = date("d/m/Y \à\s H:i:s");所以只是將其刪除,並使用Y/m/d使用$data = date("Y/m/d H:i:s");。關於這個的更多信息如下。

閱讀關於這些手冊:

和按照該手冊:

非法DATE,DATETIME或TIMESTAMP值被轉換爲「零「的適當類型的值('0000-00-00'或'0000-00-00 00:00:00')。


「如何添加一個錯誤日誌」

+1

工作完美! 謝謝,我不喜歡,但值得的 – user2415711 2014-10-19 02:55:40

+0

@ user2415711對,我很高興我可以幫忙,*歡呼*。 – 2014-10-19 02:56:44