2024 年 PHP 日本研討會

資料庫問題

本節包含關於 PHP 與資料庫之間關係的常見問題。是的,PHP 幾乎可以存取現今所有可用的資料庫。

我聽說可以從 PHP 存取 Microsoft SQL Server。該怎麼做?

在 Unix 電腦上,您可以使用 PDO_ODBCUnified ODBC API

在 Windows 電腦上,您也可以使用 PDO_SQLSRVSQLSRV

另請參閱下一個問題的答案。

我可以存取 Microsoft Access 資料庫嗎?

如果您在 Unix 系統上執行 PHP,並且想要與 Windows 系統上的 MS Access 連線,則需要 Unix ODBC 驅動程式。» OpenLink Software 提供可執行此操作的 Unix ODBC 驅動程式。

另一種替代方案是使用具有 Windows ODBC 驅動程式的 SQL 伺服器來儲存資料,然後您可以從 Microsoft Access(使用 ODBC)和 PHP(使用內建驅動程式)存取這些資料,或者使用 Access 和 PHP 都理解的中介檔案格式,例如純文字檔或 dBase 資料庫。關於這一點,OpenLink 軟體公司的 Tim Hayes 寫道:

當您可以直接從 PHP 使用 ODBC 連接到您的資料庫時,使用另一個資料庫作為中介並不是一個好主意 — 也就是使用 OpenLink 的驅動程式。如果您確實需要使用中介檔案格式,OpenLink 現在已經發布了適用於 NT、Linux 和其他 Unix 平台的 Virtuoso(一個虛擬資料庫引擎)。請造訪我們的» 網站免費下載。

一個已被證明成功的方案是在 Windows 上使用 MySQL 及其 MyODBC 驅動程式,並同步資料庫。Steve Lawrence 寫道:

  • 根據 MySQL 的說明在您的平台上安裝 MySQL。最新版本可從» https://mysql.dev.org.tw/取得。除了設定資料庫和設定使用者帳戶時,不需要特殊的設定,您應該在主機欄位中填入 %,或是您希望用來存取 MySQL 的 Windows 電腦的主機名稱。請記下您的伺服器名稱、使用者名稱和密碼。
  • 從 MySQL 網站下載適用於 Windows 的 MyODBC 驅動程式。將其安裝在您的 Windows 電腦上。您可以使用此程式隨附的工具程式來測試其運作。
  • 在您的 ODBC 管理員(位於控制台中)中建立使用者或系統 DSN。設定一個 DSN 名稱,輸入您在步驟 1 中設定的 MySQL 資料庫的主機名稱、使用者名稱、密碼、連接埠等。
  • 使用完整安裝選項安裝 Access,這可確保您取得適當的增益集...至少您需要 ODBC 支援和連結資料表管理員。
  • 現在是有趣的部分了!建立一個新的 Access 資料庫。在資料表視窗中按一下滑鼠右鍵,然後選擇「連結資料表」,或者在檔案選單選項下,選擇「取得外部資料」,然後選擇「連結資料表」。當檔案瀏覽器視窗出現時,選擇檔案類型:ODBC。選擇「系統 DSN」以及您在步驟 3 中建立的 DSN 名稱。選擇要連結的資料表,按下「確定」,就完成了!您現在可以在您的 MySQL 伺服器上開啟資料表並新增/刪除/編輯資料!您也可以建立查詢、匯入/匯出資料表到 MySQL、建立表單和報表等。

秘訣和技巧

  • 您可以在 Access 中建構資料表並將其匯出到 MySQL,然後再將其連結回來。這樣可以快速建立資料表。
  • 在 Access 中建立資料表時,您必須定義主鍵才能在 Access 中擁有對資料表的寫入權限。請確保在連結到 Access 之前,在 MySQL 中建立主鍵。
  • 如果您在 MySQL 中更改了資料表,則必須在 Access 中重新連結它。前往「工具」>「增益集」>「連結資料表管理員」,找到您的 ODBC DSN,然後從那裡選擇要重新連結的資料表。您也可以在那裡移動您的 DSN 來源,只需在按下「確定」之前勾選「一律提示新位置」核取方塊。

新增備註

使用者提供的備註 1 則備註

knb at gfz-potsdam dot de
20 年前
這對於 SYBASE 使用者來說是至關重要的資訊

如果您使用的是 Sybase 免費但舊的 11.x 用戶端程式庫,
然後使用選項 "--with-sybase-ct=$SYBASE" 進行編譯
將 $SYBASE 替換為適當的目錄名稱。

選項 --with-sybase(不含 ct)可以透過某種方式與舊的 MS-SQL 伺服器通訊,但僅限使用 11.x 版用戶端函式庫。

如果您使用的是免費或合法取得的 Sybase 12.x 版用戶端函式庫,請使用選項 "--with-sybase-ct=$SYBASE/$SYBASE_OCS" 進行編譯
將 $SYBASE/$SYBASE_OCS 替換為適當的目錄名稱。
To Top