QODBC / SQL查询/ php混合集成


QODBC / SQL query / php mixed integration

我正在开发一个基于PHP的门户网站,客户可以使用QODBC连接与他们的QuickBooks数据库进行交互。这种联系很牢固,很有效,我在那里没有任何问题;但是,到目前为止,我无法从QB内的任何表中回显任何数据。

我在下面使用的连接或运行所述查询的方法是否有问题?

我应该使用不同类型的连接字符串吗?

谢谢。

<?php
set_time_limit(120);
#Connect to a System DSN "QuickBooks Data" with no user or password
$oConnect = odbc_connect("QRemote Server","","");


#Set the SQL Statement
$sSQL = "SELECT TOP 50 ListID, FullName, CompanyName FROM Customer";
#Perform the query
$oResult = odbc_exec($oConnect, $sSQL);

//Test connection to DB
    if($oConnect == false){
        echo "<span style='color:ff0000;'>Failure to connect</span>";
    } else {
        echo "<span style='color:00ff00;'>Connected to DB</span>";  
    }
    echo "<br />";
//Test if query is working
    echo "<br />";
    echo "If this equals <i>-1</i>, it isn't working";
    echo "<br />";
    echo "Value:".odbc_num_rows($oResult);
    echo "<br />";
    if (odbc_num_rows($oResult)=="-1"){
        echo "<b><span style='color:ff0000;'>fail</span></b>";
    } else {
        echo "<b><span style='color:00ff00;'>pass</span></b>";
    }
    echo "<br />";
    echo "<br />";
    echo "<br />";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>QODBC PHP Script To Display SQL Results</title>
</head>
<body topmargin="3" leftmargin="3" marginheight="0" marginwidth="0" bgcolor="#ffffff" link="#000066" vlink="#000000" alink="#0000ff" text="#000000">
<table border="0" border="0" bordercolor="black" cellpadding="0" cellspacing="0">
    <tr>
        <td>
            <table border="2" bordercolor="black" bgcolor="white" cellpadding="5" cellspacing="0">
                <thead>
                    <caption align="top">QODBC PHP Script To Display SQL Results</caption>
                    <tr>
                        <th>Row</th>
                        <?php
                            $lFldCnt = 0;
                            $lFieldCount = odbc_num_fields($oResult);
                            while ($lFldCnt < $lFieldCount) {
                                $lFldCnt++;
                                    $sFieldName = odbc_field_name($oResult, $lFldCnt);
                                echo("                        <th>$sFieldName</th>'n");
                            }
                        ?>
                    </tr>
                </thead>
                <tbody>
<?php
$lRecCnt = 0;
#Fetch the data from the database
while(odbc_fetch_row($oResult)) {
    $lRecCnt++;
    print("                    <tr>'n");
    print("                        <td>$lRecCnt</td>'n");
    $lFldCnt = 0;
    $lFieldCount = odbc_num_fields($oResult);
    while ($lFldCnt < $lFieldCount) {
        $lFldCnt++;
        $sFieldValue = trim(odbc_result($oResult, $lFldCnt));
        If ($sFieldValue == "") {
            print("                        <td> </td>'n");
        }
        else {
            print("                        <td valign='"Top'">$sFieldValue</td>'n");
        }
    }
    print("                    </tr>'n");
}
#Close the connection
odbc_close($oConnect);
?>
                </tbody>
                <tfoot>
<?php
    echo "<br />";
    echo "<br />";
print("                    <caption align='"bottom'">Results of: $sSQL</caption>");
?>
                </tfoot>
            </table>
        </td>
    </tr>
</table>
</body>
</html>

——编辑日志编辑(19/03/14 7:14AM AEST) -添加了我之前忘记的$ result行

我建议参考

PHP - http://qodbc.com/links/2892 &http://qodbc.com/links/2623

远程访问QuickBooks数据- http://qodbc.com/links/2517