0

试图做一个变量的 SHA1,我正在使用这个代码片段:

$prow=mysql_fetch_array(mysql_query("SELECT SHA1($password) AS SHA"));
var_dump($prow);

但是,我总是将 prow 分配为 null,这是为什么呢?

4

2 回答 2

1

发生错误时返回 Null。您的呼叫mysql_query()可能返回错误。

如果这就是你对数据库所做的一切,为什么不使用 PHP 自己的sha1()函数:

$sha1 = sha1($password);

(注意,您应该正确使用bcryptscrypt散列密码 - SHA1 是不够的。)

于 2013-10-15T15:58:07.660 回答
1

这对我有用....

$password = 123; 
$query    = "SELECT SHA1($password) AS SHA"; 
$result   = mysql_query($query); 
$prow     = mysql_fetch_array($result);

print "<pre>";
print_r($prow);
print "</pre>";

并返回:

Array
(
    [0] => 40bd001563085fc35165329ea1ff5c5ecbdbbeef
    [SHA] => 40bd001563085fc35165329ea1ff5c5ecbdbbeef
)

尝试测试您的数据库连接...?

编辑——使用mysql_ping()来测试你的连接。如果它返回false,那是你的问题....

编辑——你需要在字符串周围加上引号......我不敢相信我错过了。

$query = "SELECT SHA1('$password') AS SHA"; 
于 2013-10-15T16:01:58.443 回答