SQL WHERE查询仅适用于某些列

时间:2016-12-08 08:59:20

标签: php mysql

我有一个名为users的SQL数据库,位于名为accounts的表中。表accounts中有四列:usernameidhashadmin

  

例如,它可能如下所示:USERNAME:“Account1”,ID:   “wfi41d”,HASH:“h2781rfh”,ADMIN“1”

用户名是主要列,我想要做的是通过PHP连接到sql数据库并输入username,你得到idhash和{ {1}}列。

以下是我的PHP代码

admin

然而问题是,如果我尝试获取<!DOCTYPE html> <html> <body> <?php $con = mysqli_connect('localhost','root','root','users'); if (!$con) { die('Could not connect: ' . mysqli_error($con)); } mysqli_select_db($con,"accounts"); $username = "Account1"; $sql="SELECT username, hash, admin FROM accounts WHERE username = '".$username."'"; $result = mysqli_query($con,$sql); $data = mysqli_fetch_array($result); echo $data['hash']; //This does not work for ID mysqli_close($con); ?> </body> </html> ,则没有结果。

只有IDhash有效。真的似乎无法找到问题所以任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:2)

因为您没有选择ID字段。 只需替换它:

$sql="SELECT username, hash, admin FROM accounts WHERE username = '".$username."'"; 

对齐
$sql="SELECT username, id, hash, admin FROM accounts WHERE username = '".$username."'";

答案 1 :(得分:0)

Id都是主要的。并且$ sql&#34;选择用户名,哈希,管理员来自帐户用户名像&#39;&#34;。$ username。&#34;%&#34;&#39 ;; 祝好运! ;)

答案 2 :(得分:0)

如果您在所有四列之后,在这种情况下为什么不使用*选择器:

$sql="SELECT * FROM accounts WHERE username = '".$username."'";

这将返回所有列值 - 无论如何你看起来好像......

答案 3 :(得分:0)

$sql="SELECT username, id, hash, admin FROM accounts WHERE username = '$username'";

$sql="SELECT * FROM accounts WHERE username = '$username'";

这可能会有所帮助......