2014-04-25 14 views
0

我有一個程序,可以將註冊數據從一個數據表移動到另一個數據表(認爲電子郵件確認後,登錄激活頁面從temp變爲永久)。我還不是最好的Mysql,仍然在學習,所以這可能是一個愚蠢的問題。我已經檢查了所有的stackoverflow,它看起來像我正確地做。爲什麼我的SELECT代碼不工作?

由於某種原因,我的選擇呼叫不起作用。這裏有一點我的代碼:

$username = mysqli_query($dbc,"SELECT 'username' FROM 'temp_users' WHERE 'activation'= '$key'"); 
$password = mysqli_query($dbc,"SELECT 'password' FROM 'temp_users' WHERE 'activation'= '$key'"); 


// Add row to database 
mysqli_query($dbc,"INSERT INTO users (username, password, salt', 'email') VALUES ('$username', '$password_hash', '$salt', '$email')"); 

echo $username, $password, $email, mysqli_affected_rows($dbc), $key; 

// Print a customized message: 
    if (mysqli_affected_rows($dbc) == 1) //if update query was successfull 
    { 
     echo '<div>Your account is now active. You may now <a href="login.php">Log in</a></div>'; 

    } else { 
     echo '<div>Oops !Your account could not be activated. Please recheck the link or contact the system administrator.</div>'; 

     } 

我回聲把我的變量,所以我可以看到發生了什麼事情。在這一點上,$ key是正確的,$ email是從以前的代碼是正確的,mysqli_affected_rows($ dbc)給我一個-1(這意味着錯誤)。 $ username和$ password是空白變量,所以很明顯,我正在做SELECT錯誤。

有什麼想法或幫助?

+0

* *簡單,那是因爲你用你的周圍表名和列報價;只是刪除它們。 –

+0

愛上(一致):'插入用戶(用戶名,密碼,鹽','email'';) –

+0

是的,我也注意到了。 OP有一種奇怪的方法來查詢DB @TheBlueDog沒有打擾回答。我認爲這隻會打開一句諺語的「蠕蟲罐頭」。 OP的代碼是過度殺傷性的,相當混亂,*充其量*。 –

回答

2

刪除'(單引號)使用(反引號)=``

SELECT `username` FROM `temp_users` WHERE `activation`= '$key' 
+0

甚至不需要反引號,除非使用保留字 –

+0

但是@freed-ii-使用它是個好習慣。甚至在別處使用它 – underscore

+0

它純粹是優先選擇的,有些人會說是,其他人會說不,包括一些更高級的代表和gals在這裏,但我會+1這個;-) –