试图做一个变量的 SHA1,我正在使用这个代码片段:
$prow=mysql_fetch_array(mysql_query("SELECT SHA1($password) AS SHA"));
var_dump($prow);
但是,我总是将 prow 分配为 null,这是为什么呢?
发生错误时返回 Null。您的呼叫mysql_query()
可能返回错误。
如果这就是你对数据库所做的一切,为什么不使用 PHP 自己的sha1()
函数:
$sha1 = sha1($password);
(注意,您应该正确使用bcrypt
或scrypt
散列密码 - SHA1 是不够的。)
这对我有用....
$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";