用MySQL和PHP建立XML

來源:互聯網
上載者:User
關鍵字 用MySQL和PHP建立XML

xml是作為資料交換標準而出現的。java和.NET都內在支援XML,但是其它平台上的開發人員也不用擔心自己被這項技術所遺棄了。php就是一個頗受歡迎的支援XML的指令碼環境。

在本文中,我將向你介紹利用諸如PHP和MySQL這樣的開放源碼工具來處理XML的過程。我將以執行一個MySQL查詢並把從查詢所得到資料格式化為XML為例來加以說明。最後,在開始埋頭編寫代碼之前,我將介紹如何把XML寫入檔案並檢測系統設定。

為了可以運行本文所給出的代碼,你需要能過運行PHP和MySQL,而且為了充分利用這些例子,你還需要知道主機名稱、使用者名稱和口令。例子中的MySQL資料庫的格式A所示。讓我們看看如何用PHP來串連該資料庫。

圖A



用PHP建立資料庫連接

下面的PHP指令碼建立到資料庫的串連並執行一個查詢:

$db_name = "xrandomusa_4";
$connection = mysql_connect("MySQL.somewhere.com", "username", "passWord") or die("Could not connect.");
$table_name = 'pages';

查詢MySQL

在MySQL串連建立之後,你必須用該串連來建立當前資料庫。下面的代碼就是用來完成這個任務的:

$db = mysql_select_db($dbName, $link);

現在,用一個SQL語句來選擇$table_name中的所有行:
$query = "select * from " . $table_name;

如有必要,你可以隨後添加屬性。現在,如下執行查詢:
$result = mysql_query($query, $connection) or die("Could not complete database query");
$num = mysql_num_rows($result);

你可以通過PHP.net網站來獲得關於所有MySQL函數的參考資料。

建立並編寫XML

現在,你應該已經做好了建立新XML文檔的準備了。這有許多種方法,不過我認為清單A中所用到的方法可以滿足絕大多數目的。

現在我們詳細介紹這一過程。變數num表示你查詢的資料行出現與否,它對MySQL的mysql_num_rows函數是可測的。變數$file包含了一個指標,該指標指向PHP在檔案系統中成功的搜尋到results.xml時所產生檔案對象。如果找到result.xml,則建立你的PHP檔案對象以及指定檔案,且其屬性是可寫的。現在你可以把一個變數的內容列印到建立後的檔案(由於你的目錄已經設定為允許PHP寫檔案,所以這麼做是沒有問題的)。

注意,從安全的角度來考慮,在實際的應用程式開發中這麼做其實是很愚蠢的。為了確保你能夠安全的實現本文所涉及的概念,你應該為你所希望開啟並寫入的檔案提供完全路徑,並確保該檔案位於你的Web根目錄之下。

然後,PHP的mysql_fetch_array函數把查詢變數$result轉換成一個數組,並按其關鍵字進行迴圈。如果pgaeTitle在查詢所返回的欄之中,對每一行傳回值都向字串變數$_xml寫入某些文本。

注意運算子“.=”(它用來把XML格式的字串當作數值來拼接)讀取$row。當迴圈結束的時候,根XML節點列印到變數$_xml之中,所有的變數用PHP的fwrite函數寫入file.xml檔案之中。

現在,螢幕上顯示出一個連結。確保這條連結指向你的XML檔案的路徑,否則你無法看到這個格式化XML(該檔案用PHP處理MySQL查詢而產生)。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.