2014-02-20 66 views
0

我试图用php从我的SQL Server数据库中获取数据,以便填充e XML文档。但我有这个错误:Call to a member function saveXML() on a non-object in C:\xampp\htdocs\db\1mod.php on line 67 任何人都可以帮助我吗?我能做什么?在非对象上调用成员函数saveXML()

这是我的PHP文件

<?php 

    $file = fopen("C:/xampp/htdocs/result.xml","w"); 

    ini_set('display_errors',1); 
    error_reporting(E_ALL); 
    $server = "USER-PC\SQLEXPRESS"; 
    $options = array("UID"=>"", "PWD"=>"", "Database"=>"RESTORANTET"); 

    $conn = sqlsrv_connect($server, $options); 
    if(!$conn) 
    { 
    echo mysql_error(); 
    } 

    $Query = "SELECT MAX(ID_Rest) AS MAXID FROM RESTORANTET"; 
    $Result = sqlsrv_query($conn,$Query) 
    or die("Query to get blah failed with error111: ".mysql_error()); 
    $Row = sqlsrv_fetch_array($Result,SQLSRV_FETCH_ASSOC); 
    $nbPhase = $Row['MAXID']; 
    print "<TrafficPhase>"; 
    $i = 1; 
    $k = 1; 
    while ($i <= $nbPhase) 
    { 
     print "<Phase>\n"; 

     $Query1 = "SELECT * FROM RESTORANTET WHERE ID_Rest = $i"; 
     $Result1 = sqlsrv_query($conn,$Query1) or die("Query to get blah failed with error222: ".mysql_error()); 
     $Row1 = sqlsrv_fetch_array($Result1); 


     print "<Option_id>" .$k. "</Option_id>\n"; 
     print "<name>" .$Row1['Emri_Rest']. "</name>\n"; 
     print "<Option_Concept_ID>" .$Row1['Lloji_i_ushqimit']. "</Option_Concept_ID>\n"; 


     $i = $i + 1; 
     print "</Phase>\n"; 
    } 
    print "</TrafficPhase>\n"; 


    echo $file->saveXML(); 
    fwrite($file, $xml->w); 
    fclose($file); 


    ?> 

提前感谢!

回答

0

怎么一回事,因为saveXML是DOMDocument对象

http://pl1.php.net/domdocument.saveXML 

流的fopen犯规支持saveXML功能功能。如果你想使用它,你shuold创建DOM文档的第一个对象,例如:

$dom = new DOMDocument('1.0', 'iso-8859-1'); 

echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?> */ 

如果你想去的XML元素作为字符串进行操作,您可以使用

$sxe = new SimpleXMLElement('http://example.org/document.xml', NULL, TRUE); 
    echo $sxe->asXML(); 
相关问题