国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 後端開發(fā) php教程 一個(gè)用於MySQL的PHP?? XML類別_PHP教程

一個(gè)用於MySQL的PHP?? XML類別_PHP教程

Jul 21, 2016 pm 04:08 PM
mysql php xml 不是 資訊 然而 類別

我承認(rèn)我不是PHP的領(lǐng)導(dǎo)者。然而,在看了一些PHP的信息之后,我認(rèn)為有一些功能需要添加到其中來處理數(shù)據(jù)庫連接和整合XML。要做到這一點(diǎn),我想我可以創(chuàng)建一個(gè)處理連接MySQL和使用PHP中的domxml功能來提供XML輸出的類。然后我就可以在PHP腳本的任何地方聲明這個(gè)類并且在需要使用它的時(shí)候可以提供XML功能。

?
我假設(shè)人們使用PHP是原因是他的標(biāo)價(jià):免費(fèi)。MySQL為需要向系統(tǒng)中增加數(shù)據(jù)庫功能的開發(fā)人員提供一個(gè)免費(fèi)的數(shù)據(jù)庫解決方案。這些解決方案的缺點(diǎn)是在設(shè)置和管理的時(shí)候有些復(fù)雜。

我在這篇文章中使用的PHP版本是PHP 4.3.4 for Win32,可以從The PHP Group下載。MySQL的版本是MySQL 4.0.16 for Win32,可以從MySQL.com得到。MySQL的安裝很容易——只要簡(jiǎn)單地按照其指令來就可以了。PHP稍微有一點(diǎn)復(fù)雜。

在PHP的下載頁面有兩個(gè)文件:一個(gè)ZIP文件和一個(gè)安裝文件。因?yàn)槲覀冃枰砑覼IP文件中的擴(kuò)展,所以這兩個(gè)文件都要下載。下面是下載之后的所要做的一個(gè)簡(jiǎn)單步驟:

1. 使用安裝文件安裝PHP。

2. 解壓iconv.dll,將其放到Windows的系統(tǒng)文件夾中。

3. PHP安裝目錄下創(chuàng)建一個(gè)目錄(默認(rèn)為C:\PHP)“extensions”。

4. 解壓php_domxml.dll文件到這個(gè)目錄。

5.? 在Windows文件夾下找到php.ini文件,然后使用記事本或其它文本編輯器打開。在這個(gè)文件中找到“extensions_dir=”,然后將其值修改為第3步設(shè)置的擴(kuò)展文件夾的完整路徑。

6. 找到“;extension=php_domxml.dll”,刪除本行開頭的分號(hào)。

7.重新啟動(dòng)Web服務(wù)器。

然后在你的Web目錄下使用下面的代碼創(chuàng)建一個(gè)PHP頁面“test.php”。(這段代碼在運(yùn)行IIS 5.0的Windows 2000 SP3能夠正常運(yùn)行。)

$myxml = new CMySqlXML("localhost", "test_user", "password", "test");

echo $myxml->run_sql_return_xml("SELECT * FROM users");

classCMySqlXML {

??? var $host;

??? var $user;

??? var $password;

??? var $db;

??? functionCMySqlXML($host, $user, $password, $db) {

??????? $this->host = $host;

??????? $this->user = $user;

??????? $this->password = $password;

??????? $this->db = $db;

??? }

????? functionrun_sql_return_xml($sql_string) {

??????? $connection = mysql_connect($this->host, $this->user, $this->password,

$this->db);

??????? mysql_select_db($this->db);

??????? $result = mysql_query($sql_string);

??????? $doc = domxml_open_mem("");

??????? while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

??????????? $num_fields = mysql_num_fields($result);

??????????? $row_element = $doc->create_element(mysql_field_table($result, 0));

??????????? $doc_root = $doc->document_element();

??????????? $row_element = $doc_root->append_child($row_element);

??????????? for ($i = 0; $i < $num_fields; $i++) {

$field_name = mysql_field_name($result, $i);

$col_element = $doc->create_element($field_name);

??????????????? $col_element = $row_element->append_child($col_element);

??????????????? $text_node = $doc->create_text_node($row[$field_name]);

??????????????? $col_element->append_child($text_node);

??????????? }

??????? }

??????? mysql_free_result($result);

??????? mysql_close($connection);

??????? return $doc->dump_mem(false);

??? }

? }
這個(gè)例子要求你在test

? }
這個(gè)範(fàn)例要求你在test

? }

這個(gè)範(fàn)例要求你在test

」。而且,你還需要為存取測(cè)試資料庫上的資料建立一個(gè)使用者。建立資料庫、表格等的步驟可以查看MySQL的文檔。

?

如果你分析一下程式碼,你就會(huì)明白我創(chuàng)建了一個(gè)叫做CMySqlXML的類別。 CMySqlXML建構(gòu)函式接受四個(gè)參數(shù):MySQL的主機(jī)名,一個(gè)合法的使用者名,一個(gè)密碼和一個(gè)資料庫名字。建構(gòu)子使用這四個(gè)參數(shù)來設(shè)定類別的host、user、password和db成員變數(shù)。

該類別提供的唯一的一個(gè)方法是run_sql_return_xml()。它接受一個(gè)SQL查詢字串參數(shù)。當(dāng)這個(gè)方法執(zhí)行的時(shí)候,它會(huì)建立一個(gè)到MySQL資料庫的連接並選擇資料庫。查詢字串被執(zhí)行,結(jié)果儲(chǔ)存到變數(shù)$result。使用domxml_open_mem()函數(shù)建立一個(gè)新的DOMDocument物件。然後,程式碼開始循環(huán)結(jié)果集中的所有記錄。對(duì)於每一筆記錄,將一個(gè)與結(jié)果集的表同名的行元素新增至DOMDocument文件元素。然後為每個(gè)欄位新增一個(gè)元素到行元素中,元素名為欄位名稱。最後,一個(gè)文字節(jié)點(diǎn)被加入到每個(gè)欄位節(jié)點(diǎn),節(jié)點(diǎn)的值為該欄位的值。

在循環(huán)所有行之後,程式碼釋放結(jié)果集並關(guān)閉連線。產(chǎn)生的DOMDocument XML從函數(shù)傳回。

在PHP頁面的開始處你會(huì)看到CMySqlXML物件被實(shí)例化,run_sql_return_xml()方法被呼叫。這個(gè)方法的回傳值會(huì)回傳給客戶。 domxml功能除了PHP函數(shù)命名約定之外都遵守DOM規(guī)範(fàn)。

如果需要更多有關(guān)DOM規(guī)範(fàn)的信息,可以訪問W3C的網(wǎng)站。而更多domxml的資訊則可以從The PHP Group找到,在這裡你可以下載不同格式的文件。 ----------------------------------------- ---------------------------------------本文作者: Phillip Perkins是Ajilon Consulting的簽約人。他的經(jīng)驗(yàn)很豐富,從機(jī)器控制和客戶/伺服器到企業(yè)內(nèi)部網(wǎng)路應(yīng)用程式。 http://www.bkjia.com/PHPjc/314726.htmlwww.bkjia.com
truehttp: //www.bkjia.com/PHPjc/314726.html
TechArticle我承認(rèn)我不是PHP的領(lǐng)導(dǎo)者。然而,在看了一些PHP的資訊之後,我認(rèn)為有一些功能需要添加到其中來處理資料庫連接和整合XML。要做到這一點(diǎn)...
本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

在C中使用std :: Chrono 在C中使用std :: Chrono Jul 15, 2025 am 01:30 AM

std::chrono在C 中用於處理時(shí)間,包括獲取當(dāng)前時(shí)間、測(cè)量執(zhí)行時(shí)間、操作時(shí)間點(diǎn)與持續(xù)時(shí)間及格式化解析時(shí)間。 1.獲取當(dāng)前時(shí)間使用std::chrono::system_clock::now(),可轉(zhuǎn)換為可讀字符串但係統(tǒng)時(shí)鐘可能不單調(diào);2.測(cè)量執(zhí)行時(shí)間應(yīng)使用std::chrono::steady_clock以確保單調(diào)性,並通過duration_cast轉(zhuǎn)換為毫秒、秒等單位;3.時(shí)間點(diǎn)(time_point)和持續(xù)時(shí)間(duration)可相互操作,但需注意單位兼容性和時(shí)鐘紀(jì)元(epoch)

PHP如何處理環(huán)境變量? PHP如何處理環(huán)境變量? Jul 14, 2025 am 03:01 AM

toAccessenvironmentVariablesInphp,useGetenv()或$ _envsuperglobal.1.getEnv('var_name')retievesSpecificvariable.2。 $ _ en v ['var_name'] accessesvariablesifvariables_orderInphp.iniincludes“ e” .setVariablesViaCliWithvar = vualitephpscript.php,inapach

mysql公共表表達(dá)式(CTE)示例 mysql公共表表達(dá)式(CTE)示例 Jul 14, 2025 am 02:28 AM

CTE是MySQL中用於簡(jiǎn)化複雜查詢的臨時(shí)結(jié)果集。它在當(dāng)前查詢中可多次引用,提升代碼可讀性和維護(hù)性。例如,在orders表中查找每個(gè)用戶的最新訂單時(shí),可通過CTE先獲取每個(gè)用戶的最新訂單日期,再與原表關(guān)聯(lián)獲取完整記錄。相比子查詢,CTE結(jié)構(gòu)更清晰,邏輯更易調(diào)試。使用技巧包括明確別名、串聯(lián)多個(gè)CTE以及利用遞歸CTE處理樹形數(shù)據(jù)。掌握CTE能使SQL更優(yōu)雅高效。

為什麼我們?cè)u(píng)論:PHP指南 為什麼我們?cè)u(píng)論:PHP指南 Jul 15, 2025 am 02:48 AM

PHPhasthreecommentstyles://,#forsingle-lineand/.../formulti-line.Usecommentstoexplainwhycodeexists,notwhatitdoes.MarkTODO/FIXMEitemsanddisablecodetemporarilyduringdebugging.Avoidover-commentingsimplelogic.Writeconcise,grammaticallycorrectcommentsandu

如何避免PHP中未定義的索引錯(cuò)誤 如何避免PHP中未定義的索引錯(cuò)誤 Jul 14, 2025 am 02:51 AM

避免“undefinedindex”錯(cuò)誤的關(guān)鍵方法有三:首先,使用isset()檢查數(shù)組鍵是否存在並確保值不為null,適用於大多數(shù)常規(guī)場(chǎng)景;其次,使用array_key_exists()僅判斷鍵是否存在,適用於需要區(qū)分鍵不存在和值為null的情況;最後,使用空合併運(yùn)算符??(PHP7 )簡(jiǎn)潔地設(shè)置默認(rèn)值,推薦用於現(xiàn)代PHP項(xiàng)目,同時(shí)注意表單字段名拼寫、謹(jǐn)慎使用extract()及遍歷前檢查數(shù)組非空以進(jìn)一步規(guī)避風(fēng)險(xiǎn)。

php準(zhǔn)備的語句與條款 php準(zhǔn)備的語句與條款 Jul 14, 2025 am 02:56 AM

使用PHP預(yù)處理語句執(zhí)行帶有IN子句的查詢時(shí),1.需根據(jù)數(shù)組長度動(dòng)態(tài)生成佔(zhàn)位符;2.使用PDO時(shí)可直接傳入數(shù)組,用array_values確保索引連續(xù);3.使用mysqli時(shí)需構(gòu)造類型字符串並綁定參數(shù),注意展開數(shù)組的方式及版本兼容性;4.避免拼接SQL、處理空數(shù)組和確保數(shù)據(jù)類型匹配。具體做法是:先用implode與array_fill生成佔(zhàn)位符,再依擴(kuò)展特性綁定參數(shù),從而安全執(zhí)行IN查詢。

為MySQL表中的列選擇適當(dāng)?shù)臄?shù)據(jù)類型 為MySQL表中的列選擇適當(dāng)?shù)臄?shù)據(jù)類型 Jul 15, 2025 am 02:25 AM

insetTingUpmysqltables,選擇theStherightDatatatPesisionCrucialForeffifeffifeffifeffificeFifeffifeFrifeFifeScalible

PHP標(biāo)頭重定向不起作用 PHP標(biāo)頭重定向不起作用 Jul 14, 2025 am 01:59 AM

header函數(shù)跳轉(zhuǎn)失敗原因及解決方法:1.header前已有輸出,需檢查並移除所有前置輸出或使用ob_start()緩衝;2.未加exit導(dǎo)致後續(xù)代碼干擾,應(yīng)在跳轉(zhuǎn)後立即添加exit或die;3.路徑錯(cuò)誤應(yīng)使用絕對(duì)路徑或動(dòng)態(tài)拼接確保正確;4.服務(wù)器配置或緩存干擾可嘗試清除緩存或更換環(huán)境測(cè)試。

See all articles