$doc = domxml_open_mem("<root/>"); //创建一个dom对象$row_element = $doc->create_element(“user”); //创建表名的元素为什么 $row_element 返回值为空 ??导致  $row_element = $doc_root->append_child($row_element);提示错误 append_child()函数应用于非对象上,但是我检查不出来哪里出错,求高手指点迷津!谢谢
全文 是引用下面的 
==========================<?php
$myxml = new CMySqlXML("localhost", "root", "mysql", "test");
echo $myxml->run_sql_return_xml("SELECT * FROM user");
 class CMySqlXML {
 var $host;
 var $user;
 var $password;
 var $db;
 function CMySqlXML($host, $user, $password, $db) {
 $this->host = $host;
 $this->user = $user;
 $this->password = $password;
 $this->db = $db;
 }
 function run_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("<root/>"); //创建一个dom对象
 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(); //确定root为文档根元素
 $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(iconv("gb2312","utf-8",$row[$field_name])); //值 为了显示方便特用iconv进行转码 
 $col_element->append_child($text_node); //添加入值
 }
 }
 mysql_free_result($result);
 mysql_close($connection);
 //return htmlspecialchars($doc->dump_mem(false));
return $doc->dump_mem(false);
 }
 }

解决方案 »

  1.   

    <?php
    $myxml = new CMySqlXML("localhost", "root", "mysql", "test");
    echo $myxml->run_sql_return_xml("SELECT * FROM user");
     class CMySqlXML {
     var $host;
     var $user;
     var $password;
     var $db;
     function CMySqlXML($host, $user, $password, $db) {
     $this->host = $host;
     $this->user = $user;
     $this->password = $password;
     $this->db = $db;
     }
     function run_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("<root/>"); //创建一个dom对象
     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(); //确定root为文档根元素
     $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(iconv("gb2312","utf-8",$row[$field_name])); //值 为了显示方便特用iconv进行转码 
     $col_element->append_child($text_node); //添加入值
     }
     }
     mysql_free_result($result);
     mysql_close($connection);
     //return htmlspecialchars($doc->dump_mem(false));
    return $doc->dump_mem(false);
     }
     }============================
    代码如上 提示错误:Fatal error: Call to a member function append_child() on a non-object in E:\PhpServers\Apache2.2\htdocs\111.php on line 24
      

  2.   

    $row_element = $doc->create_element(“user”); //创建表名的元素双引号是中文的