Php 为什么我的选择代码不起作用?

Php 为什么我的选择代码不起作用?,php,mysql,mysqli,Php,Mysql,Mysqli,我有一个程序,可以将注册数据从一个数据表移动到另一个数据表(在电子邮件确认后,考虑登录激活页面从临时到永久)。我还不是Mysql的高手,还在学习,所以这可能是个愚蠢的问题。我已经检查了stackoverflow的所有地方,看起来我做得很正确 由于某些原因,我的select呼叫不起作用。下面是我的一些代码: $username = mysqli_query($dbc,"SELECT 'username' FROM 'temp_users' WHERE 'activation'= '$key'");

我有一个程序,可以将注册数据从一个数据表移动到另一个数据表(在电子邮件确认后,考虑登录激活页面从临时到永久)。我还不是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>';

        }
$username=mysqli\u查询($dbc,“从'temp\u users'中选择'username',其中'activation'='$key');
$password=mysqli_查询($dbc,“从'temp_users'中选择'password',其中'activation'='$key'”);
//将行添加到数据库
mysqli_query($dbc,“插入用户(用户名、密码、salt”、“电子邮件”)值(“$username”、“$password_hash”、“$salt”、“$email”));
echo$username、$password、$email、mysqli\u受影响的行($dbc),$key;
//打印自定义邮件:
if(mysqli_受影响的_行($dbc)==1)//如果更新查询成功
{
echo“您的帐户现在处于活动状态。您现在可以”;
}否则{
echo“哎呀!您的帐户无法激活。请重新检查链接或与系统管理员联系。”;
}
我把我的变量放在回音里,这样我就能看到发生了什么。此时,$key是正确的,$email是早期代码中正确的,mysqli\u受影响的行($dbc)给了我一个-1(这意味着错误)$username和$password是空白变量,所以很明显我的选择不正确

有什么想法或帮助吗?

删除
(单引号)使用(反勾号)=``


很简单,这是因为在表名和列周围使用引号;只要删除它们就行了。我喜欢这种一致性:
插入到用户中(用户名、密码、salt”、“电子邮件”
;)是的,我也注意到了。OP用一种奇怪的方式查询DB@TheBlueDog没有费心回答。我想这只会打开一个俗话说的“虫子罐头”。OP的代码太过分了,充其量也太混乱了。谢谢大家,我一直在尝试使用引号,它仍然是错误崩溃,但至少这部分是现在我不知道为什么你要使用两个单独的查询,而你可以一次完成:
$query=mysqli\u query($dbc,从临时用户中选择用户名、密码,其中激活=“$key”)
然后从那里继续。@Gu3milesDon甚至不需要反勾号,除非使用保留字。但是@Fred ii-使用它是一个好习惯。我甚至在其他地方使用它纯粹是出于偏好。一些人会说是,其他人会说不是;包括这里的一些有较高代表性的人和女孩。但是我会+1这个;-)你好,我解决了我的问题。这是一个在正确位置的单引号和反勾号的组合。再次感谢,现在一切都正常了
SELECT `username` FROM `temp_users` WHERE `activation`= '$key'