資料庫相關問題_php基礎

來源:互聯網
上載者:User

資料庫相關問題
這節將討論PHP和資料庫之間最普通的問題。誇張地說,PHP幾乎可以操作今天市面上有的所有的資料庫。
1. 我聽說PHP可以操作微軟的SQL Server.應該怎樣做?
2. 我可以操作微軟 Access 資料庫嗎?
3. 我升級到了PHP 4, 現在我的mysql總是告訴我: "Warning: MySQL: Unable to save result set in ...". 這是怎麼回事?
4. 安裝完共用mysql支援後, 一裝入libphp4.so Apache 就 dumps core . 這個問題可以修複嗎?
5. 為什麼我總得到這樣的錯誤訊息: : "Warning: 0 is not a MySQL result index in <file> on line <x>" or "Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>?
1. 我聽說PHP可以操作微軟的SQL Server.應該怎樣做?
在Windows平台下, 你只要使用包裡所含的ODBC驅動程式就可以了。
在Unix平台下, 你可以使用Sybase-CT driver 來操作 Microsoft SQL Servers。因為它們的協議(至少絕大部份的產品) 是完全相容的. Sybase 有一個免費的 Linux systems 版本. 對另外一些的Unix系統來說,你可能需要聯絡 Sybase,以得到正確的庫檔案 . 也可以參照下面一些問題的答案。
2. 我可以操作 Microsoft Access資料庫嗎?
是的。如果你是在 Windows 9x/Me, 或 NT/2000下運行,你已經有了所有必須的工具。 你可以使用ODBC 和 Microsoft's ODBC drivers for Microsoft Access databases。
如果你是在 Unix 下運行PHP,想要和Windows下的 MS Access 通訊,那麼你需要Unix ODBC drivers. OpenLink Software 提供了一個 Unix-based ODBC drivers。 你可以下載一個試用(不到期)的 pilot 程式, 商業版本的價格定位在 $675
另外一種辦法是使用帶 Windows ODBC驅動的 SQL server來存諸資料,然後你可以用Microsoft Access (ODBC) and PHP (內建SQL Server驅動)來操作這個庫。或者使用另一種檔案格式, Access 和 PHP 都可以開啟的, 比如作業系統檔案或dBase 資料庫等。關於這 OpenLink software的Tim Hayes 寫了如下的文字: 在你可以使用PHP直接操作一種資料庫裡,使用另外的庫作為中介軟體不是一個好的主意。
--例如用OpenLink's 驅動. 如果你確實需要中介軟體庫, OpenLink 現在發布了 Virtuoso (虛擬資料庫引擎), 可以運行在NT, Linux 其它的 unix平台.
      請參閱 website 免費下載.


另一個成功的範例子是使用Windows下的Mysql(通過mysql ODBC),來同步化 Access 資料庫. Steve Lawrence 寫到:

按照Mysql的指引安裝你的平台下的Mysql. 最新版本可以從 http://www.mysql.com/ 得到(從你最近的鏡像點!). 除了設定一個Mysql的資料庫,不需要其它特別的配置, 設定使用者帳號, 你應該把使用者的主機域 設為“%”, 確認你的伺服器名、資料庫名等
在Mysql的網站上下找Mysql ODBC驅動,最新的版本應該是 myodbc-2_50_19-win95.zip (NT)。在你的Windows下安裝它. 你可以用工具包裡的工具測試安裝是否成功。
在你的 ODBC 管理器(控制台裡)裡建立一個使用者和系統的dsn。建一個DSN名, 輸入你的主機名稱, 使用者名稱(mysql), 口令,連接埠號碼, 等你在第一步裡設定的資料。
完整安裝Access, 這一步使你安裝必須的工具驅動.. 至少 你需要管理串連的資料庫表。
現在最有趣的事發生了! 建一個新的Access資料庫。 在表裡右鍵,選"link Tables"(連結資料表), 或者在 “檔案” 菜單 下, 選“ Get External Data ”(擷取外部資料) 然後“ Link Tables”(連結資料表). 當對話方塊開啟時,選擇檔案類型: ODBC. 選擇系統DSN,你在第三步建立的DSN名. 然後選要連結的表。按“確定”, 哦! 你現在可以在你的Mysql管理器上開啟這個表, 可以增加/編輯/刪除 資料! 你也可以建立查詢, 輸入/輸出表到 MySQL, 建立表單及報表,等.

Tips and Tricks:

你可以建立Access表,把它輸出到 MySQL, 也可以連結回來. 它會使建立錶快些.
當你在Access裡建立表時, 必須設定主鍵。 同樣,在Mysql裡連到access時,也要有主鍵。
如果你在 MySQL時選了一張表, 你不得不在Access裡重新連結.去>add-ins>連結資料表管理器

3. 我升級到了PHP 4, 現在我的mysql總是告訴我: "Warning: MySQL: Unable to save result set in ...". 這是怎麼回事?
大部分這樣的問題,是因為 PHP 4 編譯選項 '--with-mysql'沒有標明你的Mysql的路徑。 這樣PHP就會使用它內建的MySQL庫. 如果你的系統運行在這樣的平台下, PHP 3 作為 Apache 模組, 或者 auth-mysql, 它們使用另外版本的Mysql驅動,這樣在兩個不同版本的Mysql用戶端驅動上就會存在衝突。
重新編譯PHP 4, 增加Mysql的路徑資訊, '--with-mysql=/your/path/to/mysql' 通常都能解決這個問題。
4. 安裝完共用mysql支援後, 一裝入libphp4.so Apache 就 dumps core . 這個問題可以修複嗎?
如果你的Mysql是用 pthreads 串連的,將會發生這種情況。請使用 ldd。 如果已使用, grab the MySQL tarball and 重新編譯, 或 從原始碼rpm編譯,移去相關檔案裡的開啟 threaded client 代碼的開關 。如果以上的兩種方法都不能修複這個錯誤,那麼重新編譯新的PHP庫支援新的Mysql。
5. 為什麼我總得到這樣的錯誤訊息: : "Warning: 0 is not a MySQL result index in on line " or "Warning: Supplied argument is not a valid MySQL result resource in on line ?
你正在使用的結果集變數值是0。0意味著 因為某種原因你的查詢失敗了。在你取得結果集之前,你必須檢查提交查詢失敗的原因。正確的寫法應該如下: $result = mysql_query("SELECT * FROM tables_priv");
if (!$result) {
    echo mysql_error();
    exit;
}

or $result = mysql_query("SELECT * FROM tables_priv")
    or die("Bad query: ".mysql_error());

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.