Php 将Mysqli_查询转换为字符串以用于哈希

Php 将Mysqli_查询转换为字符串以用于哈希,php,hash,mysqli,Php,Hash,Mysqli,我有一个简单的登录脚本,这给我带来了一些麻烦。验证用户输入后,将运行这段代码: $salt = mysqli_query($dbc, "SELECT salt FROM members WHERE Email='$email'"); $salt1 = $salt;//I'm not sure of the need for this line. $hash = sha1($salt1 , $pass); 这段代码从数据库中获取salt,然后用它散列输入的密码,以便对照数据库检查密码。我遇到的问

我有一个简单的登录脚本,这给我带来了一些麻烦。验证用户输入后,将运行这段代码:

$salt = mysqli_query($dbc, "SELECT salt FROM members WHERE Email='$email'");
$salt1 = $salt;//I'm not sure of the need for this line.
$hash = sha1($salt1 , $pass);
这段代码从数据库中获取salt,然后用它散列输入的密码,以便对照数据库检查密码。我遇到的问题是:

Warning: sha1() expects parameter 1 to be string, object given...
如何将查询转换为字符串。我知道我在用sha1,但那只是暂时的。我正在做一些非常愚蠢的事情;我最近才回到PHP,所以有人知道该怎么做吗


多谢各位

请记住,由
mysqli\u query
执行的SQL查询可能会在结果中返回多行。您可以通过调用或类似方法检索这些行的内容


另外,要注意SQL注入。您当前执行的查询易受攻击。

您需要从查询中获取结果,以便将其用作数组

$query= mysqli_query($dbc, "SELECT salt FROM members WHERE Email='$email'"); 
$row= mysqli_fetch_array($query);

$salt = $row['salt'];

你可以做类似的事情,简单地替换这个

$row= mysqli_fetch_array($salt); // fetch the array

$salt1 = $row['salt']; 

$hash = sha1($salt1 , $pass);  // encrypt

谢谢你的快速回复。请允许我问一下如何实现这一点,就像我做
$salt1=mysqli\u stmt\u fetch($salt)一样,我得到错误
警告:mysqli_stmt_fetch()期望参数1是mysqli_stmt,给定的对象