简单的通讯行动

时间:2014-10-19 00:31:47

标签: php mysql

第一个问题:mysql中的日期显示以及如何添加ERROR LOG?

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 个答案:

答案 0 :(得分: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");所以只需删除并使用$data = date("Y/m/d H:i:s");使用Y/m/d。有关这方面的更多信息如下。

阅读有关这些的手册:

并按照手册:

  

非法DATE,DATETIME或TIMESTAMP值将转换为相应类型的“零”值('0000-00-00'或'0000-00-00 00:00:00')。


  

“如何添加错误日志”