php - mysql_field_name() espera que el parámetro 1 sea un recurso,


<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$servername = "localhost";
$username = "root";
$password = "#";
$database = "book";
// Create connection
$conn = new mysqli($servername, $username, $password,$database) or die('There was a problem with connection!!');

$sql="select * from `book`;";
$result=mysqli_query($conn,$sql); 
if (!$result){
    die('Query cannot execute');
}

$row_cnt=$result->num_rows;
 $xml_dom = new DOMDocument( '1.0' );
 $xml_dom->appendchild($xml_dom->createElement('result')) ;
 $xmlRoot=$xml_dom->documentElement;
while ($row = $row_cnt){
        $xml_row_node=$xml_dom->createElement('row');
        $i=0;
        for($i=0;$i<mysqli_num_fields($result);$i++)
        {
            $xmlRow=$xml_dom->createElement(mysqli_fetch_field_direct($result,$i)->name);  
            $xmlRowElement = $xml_dom->createTextNode($row[$i]);    
            $xmlRowElement->appendChild($xmlRowElement);
        }
        $xmlRoot->appendChild($xmlRowElement);
}
header('Content-type: text/xml');
echo $xml_dom->saveXML(); 
?>

ahí está el problema

$xmlRow=$xml_dom->createElement(mysql_field_name($result,$i)); 

y muéstrame este error "mysql_field_name() espera que el parámetro 1 sea un recurso" cuando reviso el manual de este método, se usa como lo hago yo (uso php 5.6)

e intento obtener el nombre del campo así:

$xmlRow=$xml_dom->createElement((string)mysqli_fetch_field_direct($result,$i)); 

pero recibí este error El objeto de la clase stdClass no se pudo convertir a una cadena trato de convertir el objeto que devuelve esos métodosmysqli_fetch_field_direct

Cualquier ayuda será apreciada



------------Respuesta------------

Está mezclando mysqli_query y mysql_field_name.

No puedes mezclar mysqli y mysql, usa mysqli en todas partes.

Utilice mysqli_fetch_field_direct y acceda a él a través de mysqli_fetch_field_direct($result,$i)->name

Etiquetas: mysql php

Artículos relacionados:

android - Activitymanager filtrando la actividad

javascript - ¿Cómo evitar la colisión de alcance entre las directivas angularjs?