NULL分配给mysql_fetch_array输出?

时间:2013-10-15 15:54:23

标签: php mysql

尝试执行变量的SHA1,我正在使用这段代码:

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

但是,我总是把船头指定为空,为什么会这样?

2 个答案:

答案 0 :(得分:1)

发生错误时返回Null。您对mysql_query()的调用可能会返回false。

如果您正在使用数据库,那么为什么不使用PHP自己的sha1()函数:

$sha1 = sha1($password);

(N.B。您应该使用bcryptscrypt正确地填充密码 - SHA1是不够的。)

答案 1 :(得分: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";