2013-09-23 6 views
6

So fand ich diese großartige Funktion, die MySQL-Abfragen in eine XML-Seite konvertiert, und es sieht genau so aus, was ich brauche. Das einzige Problem ist, dass es mysql verwendet, aber das wird nicht mehr unterstützt, und es stellt sich heraus, dass eine der verwendeten Funktionen nicht in mysqli ist. Kennt jemand eine Alternative zu mysql_field_name?Alternative zu mysql_field_name in mysqli

Hier ist die Funktion, die ich

function sqlToXml($queryResult, $rootElementName, $childElementName) 
{ 
$xmlData = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n"; 
$xmlData .= "<" . $rootElementName . ">"; 

while($record = mysql_fetch_object($queryResult)) 
{ 
    /* Create the first child element */ 
    $xmlData .= "<" . $childElementName . ">"; 

    for ($i = 0; $i < mysql_num_fields($queryResult); $i++) 
    { 
     $fieldName = mysql_field_name($queryResult, $i); 

     /* The child will take the name of the table column */ 
     $xmlData .= "<" . $fieldName . ">"; 

     /* We set empty columns with NULL, or you could set 
      it to '0' or a blank. */ 
     if(!empty($record->$fieldName)) 
      $xmlData .= $record->$fieldName; 
     else 
      $xmlData .= "null"; 

     $xmlData .= "</" . $fieldName . ">"; 
    } 
    $xmlData .= "</" . $childElementName . ">"; 
} 
$xmlData .= "</" . $rootElementName . ">"; 

return $xmlData; 
} 

Mit dem betreffenden Teil ist

$fieldName = mysql_field_name($queryResult, $i); 

Dank

Mike

+0

können Sie entweder [mysqli_fetch_fields()] (http://in2.php.net/manual/en/mysqli-result.fetch-fields.php) oder [mysqli_fetch_field()] (http://in2.php.net/manual/en/mysqli-result.fetch-field.php) – bansi

+0

Was passiert, wenn ich den Feldnamen nicht kenne? – user1685192

+0

'mysqli_fetch_fields()' gibt ein Array von Feldern zurück – bansi

Antwort