2017-04-22 76 views
-1

我的连接& SQL查询已经过测试,他们的工作。我只是试图将一列数据打印到我的浏览器中进行输出,以便我可以测试数据库的其余部分。我只是试图打印一行,当我运行代码时,浏览器中没有任何内容显示为输出。数据库列名是“type”,并且在那里为我登录的用户提供“1”。登录工作,但我想读取数据库中的整数,以便将其引导至特定的配置文件。我无法从我的表格打印输出到浏览器中。Mysqli打印和显示在浏览器从表

$role = "SELECT type FROM fp.user WHERE usname ='$username' AND pswd = '$password'"; 
$access = mysqli_query($link, $role); 

$row = mysqli_fetch_row($access); 

echo $row['type']; 
+0

当你执行'var_dump($ row)'时会发生什么? – FrankerZ

+1

**警告:**使用'mysqli'时,应该使用[参数化查询](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)和[bind_param](http: //php.net/manual/en/mysqli-stmt.bind-param.php)将用户数据添加到您的查询中。不要使用字符串插值或串联来实现这个,因为你已经创建了一个严重的[SQL注入漏洞](http://bobby-tables.com/)。 **不要**将'$ _POST','$ _GET'或**任何**用户数据直接放入查询中,因为如果有人试图利用您的错误,这可能会非常有害。 – FrankerZ

+0

我将其更改为var_dump ..它实际上给了我一个NULL的输出 – Drizzle53

回答

1

查询可能有问题。您应该检查$access是否首先是错误的(这表示查询失败),并回显与查询相关的错误。

$role = "SELECT type FROM fp.user WHERE usname ='$username' AND pswd = '$password'"; 
$access = mysqli_query($link, $role); 

if (!$access) 
{ 
    echo 'There was a problem running this query: ', mysqli_error($link); 
    exit; 
} 

$row = mysqli_fetch_row($access); 

此外,根据该文档:

获取数据的一行从结果集,并返回它作为枚举数组,其中每个列存储在数组中的偏移从0开始(零)。随后对此函数的每次调用将返回结果集中的下一行,如果没有更多行,则返回或NULL。

检查以确保数据库中的用户/密码组合正确。另一个问题可能是该用户名/ $密码组合没有用户存在。

+0

查询很好.. – Drizzle53

+0

因此,在运行上述代码时没有得到echo'd? – FrankerZ

+0

true ..浏览器中没有显示 – Drizzle53