我有一个名为users
的SQL数据库,位于名为accounts
的表中。表accounts
中有四列:username
,id
,hash
和admin
。
例如,它可能如下所示:USERNAME:“Account1”,ID: “wfi41d”,HASH:“h2781rfh”,ADMIN“1”
用户名是主要列,我想要做的是通过PHP连接到sql数据库并输入username
,你得到id
,hash
和{ {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>
,则没有结果。
只有ID
和hash
有效。真的似乎无法找到问题所以任何帮助将不胜感激。
答案 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'";
这可能会有所帮助......