mysqli中mysql_field_name的替代品

时间:2013-09-23 03:40:14

标签: php mysql xml mysqli

所以我发现这个很棒的函数可以将mysql查询转换为XML页面,它看起来就像我需要的那样。唯一的问题是它使用了mysql,但是不再支持它,结果发现其中一个函数不在mysqli中。有没有人知道mysql_field_name的替代品?

这是我找到的功能

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; 
}

有问题的部分是

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

由于

麦克

1 个答案:

答案 0 :(得分:20)

有很多方法可以做到,我想最相似的是:

$fieldName = mysqli_fetch_field_direct($result, $i)->name;

http://www.php.net/manual/en/mysqli-result.fetch-field-direct.php