Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class PdoXmlCollection implements Iterator {
- private $var = array();
- private $dom;
- public function __construct(PDOStatement $stmt) {
- /* The DOMDocument containing our XML nodes */
- $this->dom = new DOMDocument();
- /* Load the PDO data into XML Containers */
- $stmt->setFetchMode(PDO::FETCH_CLASS, 'PdoXmlContainer');
- while($p = $stmt->fetch(PDO::FETCH_CLASS)) {
- $this->add($p);
- }
- }
- public function add(PdoXmlContainer $p) {
- $this->var[] = $p;
- }
- public function rewind() {
- echo "rewinding\n";
- reset($this->var);
- }
- public function current() {
- $var = current($this->var);
- return $var;
- }
- public function key() {
- $var = key($this->var);
- echo "key: $var\n";
- return $var;
- }
- public function next() {
- $var = next($this->var);
- echo "next: $var\n";
- return $var;
- }
- public function valid() {
- $var = $this->current() !== false;
- echo "valid: {$var}\n";
- return $var;
- }
- public function __toString() {
- // Write out DOMDocument
- }
- }
- class XmlObject extends DOMDocument{
- public function __construct() {
- $this->loadXML($this);
- }
- }
- class PdoXmlContainer extends XmlObject {
- public function __construct() {
- parent::__construct();
- }
- protected function __toString() {
- $stringbuilder = '';
- foreach(get_object_vars($this) as $lvar => $lvalue) {
- //$stringbuilder .= '<' . $lvar . '>' . $lvalue . '</' . $lvar . '>' . "\n";
- $stringbuilder .= '<test>abc</test>';
- }
- return $stringbuilder;
- }
- }
- $dsn = 'mysql:dbname=fluoro;host=127.0.0.1';
- $user = '...';
- $password = '...';
- try {
- $dbh = new PDO($dsn, $user, $password);
- }
- catch (PDOException $e) {
- echo 'Connection failed', $e->getMessage();
- }
- $resultset = $dbh->query('select posts.id, posts.title, categories.title as category, posts.date, posts.content from posts, categories where posts.category=categories.id');
- $pdoxml = new PdoXmlCollection($resultset);
- foreach($pdoxml as $pdo) {
- //echo $pdo;
- }
- /*
- foreach($resultset as $row)
- {
- echo $row['id'];
- }
- */
- /*
- $xslDoc = new DOMDocument();
- $xslDoc->load("fluoro.xsl");
- $xmlDoc = new DOMDocument();
- $xmlDoc->load("index.xml");
- $proc = new XSLTProcessor();
- $proc->importStylesheet($xslDoc);
- echo $proc->transformToXML($xmlDoc);
- */
- ?>
Add Comment
Please, Sign In to add comment