當前位置:
首頁 > 最新 > Linux 環境下 PHP 如何獲取 Access 資料庫數據

Linux 環境下 PHP 如何獲取 Access 資料庫數據

醫院裡面新進了一台精液分析儀,分析儀的圖文報告工作站是單機版的,用的是微軟的 Access 資料庫,那麼就要想辦法把單機版的 Access 資料庫對接出來,能讓醫生能查看電子版的精液分析報告。

Access 的資料庫文件可以通過文件同步工具同步到網路文件夾下,但原有其他檢查的數據對接使用的是 Linux,不打算單單為精液分析報告另起爐灶搭建新的 Windows 伺服器,部署兩套代碼,就要想辦法在原有的 Linux 伺服器上面去嘗試獲取 Access 資料庫數據。

第一步,為 php 安裝 odbc 的支持

apt-get install php7.1_odbc

第二步,為 odbc 添加訪問 access 資料庫的支持

apt-get install odbc-mdbtools

mdbtools 是 Linux 下面訪問 Access 資料庫的解決方案,安裝完成後,會自動在 /etc/odbcinst.ini 文件中添加 ODBC 支持 mbdtools 的配置信息。

然後就需要設置 DSN,設置的文件為 /etc/odbc.ini

第三步,中文表名惹的禍

設置完成後,滿心歡喜的在 php 中書寫代碼,期待成功的那一刻。

$connection=newPDO("odbc:Driver=MDBTools;DSN=JinYe;");

$query="select*from 表1";

$result=$connection->query($query)->fetchAll(PDO::FETCH_ASSOC);

returnjson_encode($result);

但是天不遂人願,程序報08001 Couldn"t parse SQL的錯誤,反覆查找網路的文章與上述的步驟哪一步沒有做對,找不到原因。在 Linux 下面,使用 isql 命令對資料庫進行操作:isql -v JinYe進入操作的界面後,發現無法輸入中文的表名「表1」。然後把中文表名「表1」更改成「table1」,不報錯誤了,果真是中文環境的原因。發現由於是使用 Docker ,所以沒有配置中文的環境變數,猜想配置中文的環境變數後或許能夠解決這個問題(在這之前幾乎想要放棄了)。

在網上找到了解決方案(見參考鏈接),配置了中文環境,然後就成了。

小結:

沒有什麼小結,堅持寫文章,期待早日獲取微信文章讚賞資格

參考鏈接:

PDO: How to access Microsoft Access file on Linux?https://stackoverflow.com/questions/13473149/pdo-how-to-access-microsoft-access-file-on-linux

odbc-mdbtools_0.7.1-1ubuntu1_amd64.debhttps://ubuntu.pkgs.org/14.04/ubuntu-main-amd64/odbc-mdbtools_0.7.1-1ubuntu1_amd64.deb.html

在Docker容器bash中輸入中文http://blog.shiqichan.com/Input-Chinese-character-in-docker-bash/


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 mengdream 的精彩文章:

TAG:mengdream |