0

我已经在我的 PC 上设置了 Sage Line 50 ODBC 驱动程序,并在同一台机器上使用 XAMPP php 服务器来使用 PHP 查询 sage 数据库。

这是查询销售分类帐表的一些基本代码:

<?php
error_reporting(E_ERROR);

//attempt to connect to Sage Line 50 via the system DSN which is on the Sage Server
echo("Trying to connect to Sage<hr>");

if(isset($_REQUEST['account_ref']) && $_REQUEST['account_ref'] != "") {
$account_ref = $_REQUEST['account_ref'];

$odbc['dsn'] = "SAGE50";
$odbc['user'] = "manager";
$odbc['pass'] = "brand";

$conn = odbc_connect($odbc['dsn'], $odbc['user'], $odbc['pass']);
if (!$conn) {
    die("Error connecting to the ODBC database: " . odbc_errormsg());
} else {
    $obj = array();
    echo("Connected<br>");
    $query = odbc_exec($conn, "SELECT * FROM SALES_LEDGER where ACCOUNT_REF = '{$account_ref}'");

    while ($row = odbc_fetch_array($query)) {
        print_r($row);
    }
}
} else {
    return false;
}

现在,查询实际工作并检索数据。然而,这一切看起来大部分都是垃圾,并且有奇怪的字符而不是值。

例如:

Array ( 
[�������] => [] => 
[0] => 0 
[Defaul] => Defaul 
[Open] => Open 
[T1] => T1 
[4000] => 4000 
[1] => 1 
[GB] => GB 
[0.00] => 0.00 
[30] => 30 
[2009-10-22] => 2009-10-22 
[Good] => Good 
[201x��201] => 201x��201 
[201���0�] => 201���0� 
) 

任何人都可以就为什么会发生这种情况以及是否有更好的方法提供任何建议。

任何想法或经验都会受到欢迎。

问候

詹姆士

4

2 回答 2

0

使用 array_map('utf8_encode', $row);

于 2018-08-07T15:02:27.550 回答
0

不久前,我遇到了与此完全相同的问题。我不能告诉你是什么原因造成的,但我可以告诉你用 Xampp 替换 Wamp 完全解决了它。

于 2015-08-20T21:24:38.143 回答