我想使用php odbc_connect和odbc_exec查詢訪問MDB文件。這個想法是返回一個數組,然後我可以轉換成json。php odbc_exec不工作,除非我首先回聲?
我通過的Apache2在Ubuntu 12.10
這裏運行PHP是我的代碼:
//Connect to the database
$conn=odbc_connect('stock-test','','');
//die if error
if (!$conn) {
die("Connection Failed: " . $conn);
}
//SQL query
$sql = "SELECT * FROM Stk_Items";
//This is the print command...see notes below for this
//print " "
//Execute SQL query
$rs=odbc_exec($conn,$sql);
//If no result, there is an error in the SQL
if (!$rs) {
exit("Error in SQL");
}
//Create an array to contain the results...
$arr = array();
//Loop through the results, pushing each array to the $arr array
while ($row = odbc_fetch_array($rs)) {
array_push($arr, $row);
}
print json_encode($arr);
odbc_close($conn);
現在這裏是奇怪的事情。如果在發出odbc_exec命令之前打印一個空格(或任何其他字符),此代碼將僅輸出json(我在上面的代碼中已註釋掉命令)
我也運行了其他幾個測試(回顯結果等),但沒有人會工作,除非我在odbc_exec命令之前打印一些空格。
我錯過了一些明顯的東西嗎?
良好的通話!我一直在使用不同的方法來連接以檢索具有類似結果的json,但我並不認爲要將apache排除在等式之外。我從命令行運行它,它也適用於我。我有其他類似的PHP腳本查詢MySQL和MSSQL,這些運行良好。看起來像一個odbc_exec觸發的apache2錯誤。 – 2013-03-27 11:09:17
我還應該補充說我通常會添加html和body標籤,但我只想爲jQuery調用檢索JSON。打印空白字符似乎暫時將其付諸行動,所以我現在就要做。 – 2013-03-27 11:13:46
@RichardGreen事實上,您可以從命令行運行腳本並查看輸出,這表明'odbc_exec()'可以正常工作,但是除非您回顯空格,否則您不能*在瀏覽器窗口中查看結果第一。這更可能是由於您發送給瀏覽器的內容不是有效的HTML,因此瀏覽器可能不會按照您的想法(希望)行事。 – 2013-03-27 11:25:29