mysqli 中 mysql_field_name 的替代方案

2021-12-25 00:00:00 xml php mysql mysqli

所以我发现了这个将mysql查询转换为XML页面的很棒的函数,它看起来正是我需要的.唯一的问题是它使用了 mysql,但不再受支持,而且结果使用的函数之一不在 mysqli 中.有谁知道 mysql_field_name 的替代方法?

So I found this great function that converts mysql queries into a XML page, and it looks like exactly what I need. The only problem is that it uses mysql, but thats not supported anymore, and it turns out one of the functions used isn't in mysqli. Does anyone know of an alternative to mysql_field_name?

这是我找到的函数

function sqlToXml($queryResult, $rootElementName, $childElementName)
{ 
$xmlData = "<?xml version="1.0" encoding="ISO-8859-1" ?>
"; 
$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);

谢谢

迈克

推荐答案

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

There are many ways to do it, I guess the most similar would be:

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

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

相关文章