首頁 >後端開發 >php教程 >資料庫相關問題_PHP教程

資料庫相關問題_PHP教程

WBOY
WBOY原創
2016-07-21 16:11:01747瀏覽


資料庫相關問題
這節將討論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 on line " or "Warning: Supplied argument is not a valid MySQL result resource in on line ?
1. 我聽說PHP可以操作微軟的SQL Server.應該怎麼做?
在Windows平台下, 你只要使用包裡所含的ODBC驅動程式就可以了。 systems 版本. 對另外一些的Unix系統來說,你可能需要聯繫Sybase,以獲得正確的庫文件. 也可以參考下面一些問題的答案。是的。運行PHP,想要和Windows下的MS Access 通訊,那麼你需要Unix ODBC drivers. OpenLink Software 提供了一個Unix-based ODBC drivers。 $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平台.
      請參閱🎜>

另一個成功的範例子是使用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表示因為某些原因你的查詢失敗了。 "SELECT * FROM tables_priv");
if (!$result) {
    echo mysql_error();
    exit;
}
ahECT FROM tables_priv")
    or die("Bad query: ".mysql_error());

 

http://www.bkjia.com/PHPjc/314064.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/314064.htmlTechArticle資料庫相關問題這節將討論PHP和資料庫之間最普通的問題。誇張地說,PHP幾乎可以操作今天市面上有的所有的資料庫。 1. 我聽說PHP可以操...
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn