mysql_fetch_array从一个简单的表中返回0

时间:2014-11-12 16:54:42

标签: php mysql sql pdo mysqli

我有一个名为setting的表。

我希望key等于regCharg

enter image description here

    $result_gift = mysql_query("select value,key from setting WHERE key='regCharg'");
    $result_gift_row = mysql_fetch_array($result_gift);
    $finance = (float)$result_gift_row[2] ;

但它返回0而不是1000。

enter image description here

(我知道我必须使用mysqli或PDO而不是mysql)。

3 个答案:

答案 0 :(得分:2)

您只返回数据库中的两个字段。使用数组时,索引从0开始。

数组将按照您在SQL查询中使用的顺序进行排序。

因此,您需要使用$result_gift_row[0]来返回字段值。 result_gift_row[1]会返回关键字段。

答案 1 :(得分:2)

key是保留字。你不能使用它"裸体"在查询中:

$result_gift = mysql_query("select value,`key` from setting WHERE `key`='regCharg'");
                                         ^---^---

如果您的脚本中甚至还有基本的错误处理,那么您就会对语法错误感到厌烦:

   $result = mysql_query(...) or die(mysql_error());
                             ^^^^^^^^^^^^^^^^^^^^^^^

您获得zero因为查询失败,返回布尔值为FALSE,然后您在获取操作中使用了该布尔值false,导致进一步失败。

从不在进行数据库查询时假设成功。总是假设失败,检查失败,并将成功视为一个惊喜。

答案 2 :(得分:0)

试试这个:

$finance = (float)$result_gift_row[1] ;

数组从0开始索引,这就是为什么你应该在索引1找到第二列