我希望这是一个简单的问题。
如果我通过Excel运行ODBC连接,我会得到我期望从数据库中看到的内容。当我将查询移植到Xampp进行测试时,我无法使查询显示结果中的第4个小数位。
这是我在Excel中定义的SQL查询:
SELECT MC_BOM_DETAIL.finished_item, MC_BOM_DETAIL.item_num, MC_BOM_DETAIL.quantity, MC_BOM_DETAIL.line_num, IC_INVENTRY_MAST.um_stocking
FROM IC_INVENTRY_MAST IC_INVENTRY_MAST, MC_BOM_DETAIL MC_BOM_DETAIL
WHERE IC_INVENTRY_MAST.company = MC_BOM_DETAIL.company AND IC_INVENTRY_MAST.item_num = MC_BOM_DETAIL.item_num
ORDER BY MC_BOM_DETAIL.finished_item, MC_BOM_DETAIL.line_num
执行查询的php页面如下
//Define ODBC Connection
$mas_conn = odbc_connect("odbc_connection", "user_name", "password");
//Define Query
$query = "SELECT mbd.finished_item, mbd.item_num, mbd.line_num, mbd.quantity, icm.um_stocking
FROM IC_INVENTRY_MAST icm, MC_BOM_DETAIL mbd
WHERE icm.company = mbd.company AND icm.item_num = mbd.item_num
ORDER BY mbd.finished_item, mbd.line_num";
if($result=odbc_exec($mas_conn, $query)) {
while(odbc_fetch_row($result)){
echo odbc_result($result,'quantity') .'<br>';
}
}
odbc_free_result($result);
odbc_close($mas_conn);
结果总是被截断(不是舍入)到第3个小数位,但是我需要精度到第4个。
我浏览了一下php.ini文件,看看这可能是原因,但是很短暂。
有人有建议吗?
感谢您的时间。
解决方案: 我的问题是源数据中的数据定义。这有点棘手,因为数据库是只读的,ODBC驱动程序是由第三方(ProvideX)提供的。在与软件制造商的技术人员交谈后,我能够更改设置为十进制的数据定义(8,3)。为什么Excel可以读取第4个小数,并且php odbc连接仍然无法解决。我唯一的想法是,因为Excel在本地运行。
答案 0 :(得分:0)
检查Windows本地化设置:
面板控制 - >地区和语言 - &gt;格式 - &gt;其他设置 - &gt;小数点后没有数字......