Now()在注册时不插入日期时间

时间:2013-07-17 06:27:30

标签: php mysql timestamp

正如标题所说..

这是我在register.php

中的代码
if (empty($_POST) === false && empty($errors) === true) {
    $register_data = array(
        'username'      => $_POST['username'],
        'password'      => $_POST['password'],
        'first_name'    => $_POST['first_name'],
        'last_name'     => $_POST['last_name'],
        'signup'        => 'now()',
        'email'         => $_POST['email'],
        'email_code'    => md5($_POST['username'] + microtime())
    );

    register_user($register_data);
    header('Location: register.php?success');
    exit();

这是我的用户函数文件中涉及注册的部分。

function register_user($register_data) {
array_walk($register_data, 'array_sanitize');
$register_data['password'] = md5($register_data['password']);

$fields = '`' . implode('`, `', array_keys($register_data)) . '`';
$data = '\'' . implode('\', \'', $register_data) . '\'';

mysql_query("INSERT INTO `users` ($fields) VALUES ($data)");
email($register_data['email'], 'Activate your account', "Hello " . $register_data['first_name'] . ",\n\nYou need to activate your account, so use the link below:\n\nhttp://www.site.com/activate.php?email=" . $register_data['email'] . "&email_code=" . $register_data['email_code'] . "\n\n - admin");
}

任何提示都将不胜感激。

2 个答案:

答案 0 :(得分:1)

现在我查看了代码,正如我在评论中所说:你引用了函数调用。 now()是一个函数调用,它为您提供日期时间; 'now()'根本不是日期时间。当您执行分隔implode时,您需要找出一种方法,不将该特定字段与其余字段捆绑在一起。更好的是,使用更好的方式来访问数据库:mysqli或PDO都是更好的选择。

答案 1 :(得分:0)

确保您的implode语句以正确的方式生成,例如,如果您要插入usernamesignup字段,则查询必须

INSERT INTO `users` (username, signup) VALUES ('abcd', now()) 

应该

 INSERT INTO `users` (username, signup) VALUES ('abcd', 'now()' )