Guest User

Untitled

a guest
Jul 8th, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. <?php
  2.  
  3. class PdoXmlCollection implements Iterator {
  4.  
  5. private $var = array();
  6. private $dom;
  7.  
  8. public function __construct(PDOStatement $stmt) {
  9.  
  10. /* The DOMDocument containing our XML nodes */
  11. $this->dom = new DOMDocument();
  12.  
  13. /* Load the PDO data into XML Containers */
  14. $stmt->setFetchMode(PDO::FETCH_CLASS, 'PdoXmlContainer');
  15. while($p = $stmt->fetch(PDO::FETCH_CLASS)) {
  16. $this->add($p);
  17. }
  18. }
  19.  
  20. public function add(PdoXmlContainer $p) {
  21. $this->var[] = $p;
  22. }
  23.  
  24. public function rewind() {
  25. echo "rewinding\n";
  26. reset($this->var);
  27. }
  28.  
  29. public function current() {
  30. $var = current($this->var);
  31. return $var;
  32. }
  33.  
  34. public function key() {
  35. $var = key($this->var);
  36. echo "key: $var\n";
  37. return $var;
  38. }
  39.  
  40. public function next() {
  41. $var = next($this->var);
  42. echo "next: $var\n";
  43. return $var;
  44. }
  45.  
  46. public function valid() {
  47. $var = $this->current() !== false;
  48. echo "valid: {$var}\n";
  49. return $var;
  50. }
  51.  
  52. public function __toString() {
  53. // Write out DOMDocument
  54. }
  55. }
  56.  
  57. class XmlObject extends DOMDocument{
  58. public function __construct() {
  59. $this->loadXML($this);
  60. }
  61. }
  62.  
  63. class PdoXmlContainer extends XmlObject {
  64. public function __construct() {
  65. parent::__construct();
  66. }
  67.  
  68. protected function __toString() {
  69. $stringbuilder = '';
  70. foreach(get_object_vars($this) as $lvar => $lvalue) {
  71. //$stringbuilder .= '<' . $lvar . '>' . $lvalue . '</' . $lvar . '>' . "\n";
  72. $stringbuilder .= '<test>abc</test>';
  73. }
  74. return $stringbuilder;
  75. }
  76. }
  77.  
  78. $dsn = 'mysql:dbname=fluoro;host=127.0.0.1';
  79. $user = '...';
  80. $password = '...';
  81.  
  82. try {
  83. $dbh = new PDO($dsn, $user, $password);
  84. }
  85. catch (PDOException $e) {
  86. echo 'Connection failed', $e->getMessage();
  87. }
  88.  
  89. $resultset = $dbh->query('select posts.id, posts.title, categories.title as category, posts.date, posts.content from posts, categories where posts.category=categories.id');
  90.  
  91. $pdoxml = new PdoXmlCollection($resultset);
  92. foreach($pdoxml as $pdo) {
  93. //echo $pdo;
  94. }
  95.  
  96. /*
  97. foreach($resultset as $row)
  98. {
  99. echo $row['id'];
  100. }
  101. */
  102. /*
  103. $xslDoc = new DOMDocument();
  104. $xslDoc->load("fluoro.xsl");
  105.  
  106. $xmlDoc = new DOMDocument();
  107. $xmlDoc->load("index.xml");
  108.  
  109. $proc = new XSLTProcessor();
  110. $proc->importStylesheet($xslDoc);
  111.  
  112. echo $proc->transformToXML($xmlDoc);
  113. */
  114.  
  115. ?>
Add Comment
Please, Sign In to add comment