iconv.dll 解壓至 Windows 系統資料夾(如 C:\Windows\System32)。C:\PHP)建立 extensions 資料夾。php_domxml.dll 解壓至 extensions。php.ini:
extension_dir = "C:\PHP\extensions"extension=php_domxml.dll(移除前方分號)在 Web 目錄建立 test.php:
<?php
require_once('mysql_xml_class.php'); // 假設將類別另存為此檔
$xml = new CMySQLXML('localhost', 'root', 'password', 'database_name');
echo $xml->run_sql_return_xml('SELECT * FROM users');
?>
類別檔 mysql_xml_class.php:
<?php
class CMySQLXML {
private $host, $user, $password, $db;
public function __construct($host, $user, $password, $db) {
$this->host = $host;
$this->user = $user;
$this->password = $password;
$this->db = $db;
}
public function run_sql_return_xml($sql_string) {
$conn = mysqli_connect($this->host, $this->user, $this->password, $this->db);
if (!$conn) die('連線失敗: ' . mysqli_connect_error());
$result = mysqli_query($conn, $sql_string);
if (!$result) die('查詢錯誤: ' . mysqli_error($conn));
$dom = new DOMDocument('1.0', 'UTF-8');
$root = $dom->createElement('resultset');
$dom->appendChild($root);
while ($row = mysqli_fetch_assoc($result)) {
$rowElem = $dom->createElement('row');
$root->appendChild($rowElem);
foreach ($row as $fieldName => $value) {
$colElem = $dom->createElement($fieldName);
$rowElem->appendChild($colElem);
$text = $dom->createTextNode($value);
$colElem->appendChild($text);
}
}
mysqli_free_result($result);
mysqli_close($conn);
return $dom->saveXML();
}
}
?>
mysql_* 函數與 domxml 擴充,現代環境請改用 mysqli 或 PDO 搭配 DOMDocument。header('Content-Type: application/xml; charset=utf-8');。