从mysql中检索十进制数据并放入数组
Posted
技术标签:
【中文标题】从mysql中检索十进制数据并放入数组【英文标题】:Retrieve decimal data from mysql and put into an array 【发布时间】:2012-04-11 15:28:39 【问题描述】:我有一个mysql表,只有一个寄存器,其中price
字段为decimal(6,2)
类型,值为60.35
考虑上面的代码:
$prices = mysql_query("SELECT id, price FROM products");
while ($pr = mysql_fetch_assoc($prices))
$prics[$pr['id']]=$pr['price'];
echo $pr['price'].' - '.$prics[$pr['id']]."\n";
输出不正确:
60.35 - 6
正确的是:
60.35 - 60.35
我尝试了没有mysql查询的相同情况:
$var = array(60.35,'60.35',60);
$var2[0] = $var[0];
$var2[1] = $var[1];
print_r($var2);
它按预期工作:
Array
(
[0] => 60.35
[1] => 60.35
)
我该如何解决这个问题?
【问题讨论】:
【参考方案1】:我认为问题在于 php 将第二个浮点数转换为字符串,因为它在将第一个浮点数视为浮点数时连接到字符串
编辑 - 不,这是完美的,它必须是别的东西
http://codepad.org/UbeJ20Wh
【讨论】:
问题出在mysql查询中【参考方案2】:问题线很可能
$prics[$pr['id']]=$pr['price'];
尝试强制类型如下:
settype($prics[$pr['id']], "float");
$prics[$pr['id']]=$pr['price'];
echo $pr['price'].' - '.$prics[$pr['id']]."\n";
【讨论】:
返回另一个错误:只能通过引用传递变量 尝试添加一个新变量$p,设置$p = $pr['price']
,然后设置$prics[$pr['id']] = $p
【参考方案3】:
我通过在使用前初始化数组 var 解决了这个问题:
$prics = array();
【讨论】:
以上是关于从mysql中检索十进制数据并放入数组的主要内容,如果未能解决你的问题,请参考以下文章