仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 775|回复: 8
打印 上一主题 下一主题

[学习教程] 发一篇深切浅析:用于MySQL的PHP XML类

[复制链接]
小魔女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 20:12:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
DBaaS解决方案既可以解决这些问题,又能为客户节约资金。相反作为解决方案提供商,采用DBaaS模式似乎就并不那么有吸引力了,因为与企业内部署软件的解决方案相比,DBaaS意味着更低的利润。本文中作者经由过程本人创立一个处置毗连MySQL和利用php中的domxml功效来供应XML输入的类。如许就能够能够在PHP剧本的任何中央声明这个类而且在必要利用它的时分能够供应XML功效。
假定人们利用PHP是缘故原由是他的标价:收费。MySQL为必要向体系中增添数据库功效的开辟职员供应一个收费的数据库办理计划。这些办理计划的弱点是在设置和办理的时分有些庞大。
我在这篇文章中利用的PHP版本是PHP4.3.4forWin32,能够从ThePHPGroup下载。MySQL的版本是MySQL4.0.16forWin32,能够从MySQL.com失掉。MySQL的安装很简单――只需复杂地依照其指令来就能够了。PHP略微有一点庞大。
在PHP的下载页面有两个文件:一个Zip文件和一个安装文件。由于我们必要增加ZIP文件中的扩大,以是这两个文件都要下载。上面是下载以后的所要做的一个复杂步骤:
1.利用安装文件安装PHP;
2.解压iconv.dll,将其放到Windows的体系文件夹中;
3.PHP安装目次下创立一个目次(默许为C:PHP)“extensions”;
4.解压PHP_domxml.dll文件到这个目次;
5.在Windows文件夹下找到PHP.ini文件,然后利用记事本或别的文本编纂器翻开。在这个文件中找到“extensions_dir=”,然后将其值修正为第3步设置的扩大文件夹的完全路径;
6.找到“;extension=PHP_domxml.dll”,删除本行开首的分号;
7.从头启动Web服务器。
然后在你的Web目次下利用上面的代码创立一个PHP页面“test.PHP”。(这段代码在运转IIS5.0的Windows2000SP3可以一般运转。)
以下为援用的内容:
run_sql_return_xml("SELECT*FROMusers");

  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);
  }
  }


这个例子请求你在MySQL上有一个数据库“test”,个中有一个表“users”。并且,你还必要为会见测试数据库上的数据创立一个用户。创立数据库、表等的步骤能够检察MySQL的文档。
假如你剖析一下代码,你就会分明我创立了一个叫做CMySqlXML的类。CMySqlXML机关函数承受四个参数:MySQL的主机名,一个正当的用户名,一个暗码和一个数据库名字。机关函数利用这四个参数设置类的host、user、password和db成员变量。
该类供应的独一的一个办法是run_sql_return_xml()。它承受一个SQL查询字符串参数。当这个办法实行的时分,它创立一个到MySQL数据库的毗连并选择数据库。查询字符串被实行,了局存储到变量$result中。利用domxml_open_mem()函数创立一个新的DOMDocument工具。然后,代码入手下手轮回了局会合的一切纪录。关于每笔记录,增加一个与了局集的表同名的行元素到DOMDocument文档元素中。然后为每一个字段增加一个元素到行元素中,元素名为字段名。最初,一个文本节点被增加到每一个字段节点,节点的值为该字段的值。
在轮回一切行以后,代码开释了局集并封闭毗连。发生的DOMDocumentXML从函数中前往。
在PHP页面的入手下手处你会看到CMySQLXML工具被实例化,run_sql_return_xml()办法被挪用。这个办法的前往值被前往给客户。domxml功效除PHP函数定名商定以外都恪守DOM标准。
假如必要更多有关DOM标准的信息,能够会见W3C的站点。而更多domxml的信息则能够从ThePHPGroup找到,在这里你能够下载分歧格局的文档。
DBaaS会导致单一客户利润率的下降,因为云服务一般是依靠MySQL学习教程数来抵消较低的利润率。
因胸联盟 该用户已被删除
沙发
发表于 2015-1-18 18:41:28 | 只看该作者
无法深入到数据库系统层面去了解和探究
小妖女 该用户已被删除
板凳
发表于 2015-1-27 17:04:09 | 只看该作者
然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情
活着的死人 该用户已被删除
地板
发表于 2015-2-5 14:29:50 | 只看该作者
索引视图2k就有。但是2005对其效率作了一些改进但是schema.viewname的作用域真是太限制了它的应用面。还有一大堆的环境参数和种种限制都让人对它有点却步。
精灵巫婆 该用户已被删除
5#
发表于 2015-2-12 06:51:44 | 只看该作者
我个人认为就是孜孜不懈的学习
第二个灵魂 该用户已被删除
6#
发表于 2015-3-3 00:01:25 | 只看该作者
微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。
蒙在股里 该用户已被删除
7#
发表于 2015-3-11 08:11:25 | 只看该作者
学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了!
谁可相欹 该用户已被删除
8#
发表于 2015-3-18 01:29:16 | 只看该作者
分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。
冷月葬花魂 该用户已被删除
9#
发表于 2015-3-25 09:36:23 | 只看该作者
学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 01:17

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表