Foros del Web » Programando para Internet » PHP »

Duda sobre MySQLI con fetch_assoc

Estas en el tema de Duda sobre MySQLI con fetch_assoc en el foro de PHP en Foros del Web. Hola, estoy tratando de cambiar a MySQLi pero me es bastante distinto a como es MySQL y no consigo hacer simples consultas.. Tengo esta clase ...
  #1 (permalink)  
Antiguo 30/03/2013, 10:16
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Duda sobre MySQLI con fetch_assoc

Hola, estoy tratando de cambiar a MySQLi pero me es bastante distinto a como es MySQL y no consigo hacer simples consultas..

Tengo esta clase php con la que saco x valor de una consulta, pero por ejemplo no he conseguido pasar un fetch_assoc en un while para mostrar todos los registros y con la columna que necesite como en mysql

Código PHP:
class core
{
    
    public function 
__construct() {
    
        
$this->MySQLi = array(
            
'Hostname' => 'localhost',
            
'Username' => 'root',
            
'Password' => 'nexon12',
            
'Database' => 'database');
        
        
$this->MySQLi = new mysqli($this->MySQLi['Hostname'], $this->MySQLi['Username'], $this->MySQLi['Password'], $this->MySQLi['Database']);
    
    }
    
    public function 
Query($SQL
    {
        
$this->Result $this->MySQLi->query($SQL);
        
$this->Row $this->Result->fetch_assoc();
        
        echo 
$this->Row['closed'];
    }

    
}

$core = new core();

$core->Query('SELECT * FROM settings'); 
¿Como puedo hacer eso?
  #2 (permalink)  
Antiguo 30/03/2013, 10:21
 
Fecha de Ingreso: octubre-2011
Mensajes: 113
Antigüedad: 12 años, 5 meses
Puntos: 5
Respuesta: Duda sobre MySQLI con fetch_assoc

Cita:
Iniciado por SeaPirates Ver Mensaje
Hola, estoy tratando de cambiar a MySQLi pero me es bastante distinto a como es MySQL y no consigo hacer simples consultas..

Tengo esta clase php con la que saco x valor de una consulta, pero por ejemplo no he conseguido pasar un fetch_assoc en un while para mostrar todos los registros y con la columna que necesite como en mysql

Código PHP:
class core
{
    
    public function 
__construct() {
    
        
$this->MySQLi = array(
            
'Hostname' => 'localhost',
            
'Username' => 'root',
            
'Password' => 'nexon12',
            
'Database' => 'database');
        
        
$this->MySQLi = new mysqli($this->MySQLi['Hostname'], $this->MySQLi['Username'], $this->MySQLi['Password'], $this->MySQLi['Database']);
    
    }
    
    public function 
Query($SQL
    {
        
$this->Result $this->MySQLi->query($SQL);
        
$this->Row $this->Result->fetch_assoc();
        
        echo 
$this->Row['closed'];
    }

    
}

$core = new core();

$core->Query('SELECT * FROM settings'); 
¿Como puedo hacer eso?
mira ver si te sirve, ten en cuenta que mysqli trabaja con objetos
Código PHP:
Ver original
  1. $result = $this->sendQuery($q, $params);  
  2.         if(is_object($result))
  3.         {  
  4.             $arr = array();  
  5.              while($row = $this->provider->fetchArray($result))
  6.              {  
  7.                     $arr[] = $row;  
  8.              }  
  9.            
  10.             $result->close();
  11.             return $arr;  
  12.         }  
  13.            
  14.         return  $result;
}
  #3 (permalink)  
Antiguo 30/03/2013, 10:27
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Duda sobre MySQLI con fetch_assoc

En el método sólo necesitas retornar el array con los datos:

Código PHP:
Ver original
  1. public function Query($SQL)
  2. {
  3.     $result = $this->MySQLi->query($SQL);
  4.     return $result->fetch_all();
  5. }

y con un foreach podrías recorrerlo.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #4 (permalink)  
Antiguo 30/03/2013, 10:31
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Duda sobre MySQLI con fetch_assoc

Cita:
Iniciado por andresdzphp Ver Mensaje
En el método sólo necesitas retornar el array con los datos:

Código PHP:
Ver original
  1. public function Query($SQL)
  2. {
  3.     $result = $this->MySQLi->query($SQL);
  4.     return $result->fetch_all();
  5. }

y con un foreach podrías recorrerlo.
Me devuelve:

Call to undefined method mysqli_result::fetch_all()
  #5 (permalink)  
Antiguo 30/03/2013, 10:33
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Duda sobre MySQLI con fetch_assoc

Debes tener una versión de PHP menor a 5.3.0 (necesitas mínimo 5.3.0), en ese caso debes recorrer fetch_assoc con un while para ir llenando un array y retornarlo.

Código PHP:
Ver original
  1. public function Query($SQL)
  2.     {
  3.         $result = $this->MySQLi->query($SQL);
  4.        
  5.         $data = array();
  6.        
  7.         while ($res = $result->fetch_assoc()) {
  8.             $data[] = $res;
  9.         }
  10.        
  11.         return $data;
  12.     }
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: mysql, mysqli, registro, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:36.