2013-07-17 73 views
1

正如標題所說插入日期時間..NOW()未在註冊時

這裏是我的內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"); 
} 

任何提示將不勝感激。

+3

我懷疑你可能會得到' 'now()'而不是'now()'在你的SQL中(即一個字符串而不是函數調用)。鑑於你的「內爆」所做的事情,這不僅僅是懷疑。 – Amadan

+0

什麼是註冊字段的數據類型? – 2013-07-17 06:30:28

+1

使用這個函數date(「Y-m-d H:i:s」) – gayan

回答

1

現在我查看了代碼,正如我在評論中所說的:您正在引用您的函數調用。 now()是一個函數調用,給你一個日期時間; 'now()'根本不是一種日期時間。你需要找出一種方法,當你進行分隔implode時,不要將該特定字段與其餘字段捆綁在一起。更好的是,使用更好的方式訪問數據庫:mysqli或PDO都是更好的選擇。

0

確保您implode語句會導致正確的方法,例如,如果要插入usernamesignup領域查詢必須

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

應該

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