2014-04-25 16 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这个;-) –