我有一个名为setting
的表。
我希望key
等于regCharg
:
$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。
(我知道我必须使用mysqli或PDO而不是mysql)。
答案 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找到第二列