Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/11/2015, 06:42
Javierc
 
Fecha de Ingreso: marzo-2005
Mensajes: 7
Antigüedad: 19 años, 9 meses
Puntos: 0
Respuesta: CALL Procedure() Commands out of sync; you can't run this command now

Esta es la clase completa...

Código PHP:
Ver original
  1. class Mysql{
  2.  
  3.     private $host;
  4.     private $usuario;
  5.     private $password;
  6.     private $basededatos;
  7.     private $conexion;
  8.     public $error;
  9.  
  10.     public function __construct($host, $usuario, $password, $basededatos)
  11.     {
  12.         $this->host = $host;
  13.         $this->usuario = $usuario;
  14.         $this->password = $password;
  15.         $this->basededatos = $basededatos;
  16.         if (!$this->_conect()) {
  17.             $this->error = mysqli_connect_error();
  18.             echo mysqli_connect_error();
  19.         }
  20.     }
  21.  
  22.     public function _conect()
  23.     {
  24.         $this->conexion = mysqli_connect($this->host, $this->usuario, $this->password, $this->basededatos);
  25.         $this->conexion->query("SET NAMES utf8");
  26.        $this->conexion->query("SET CHARACTER SET utf8");
  27.         $this->conexion->set_charset('utf8');
  28.         if ($this->conexion) mysqli_select_db($this->conexion, $this->basededatos);
  29.         else {
  30.             $this->error = mysqli_connect_error();
  31.             return false;
  32.         }
  33.  
  34.     }
  35.  
  36.     public function filtrar($valor)
  37.     {
  38.         $valor = stripcslashes($valor);
  39.         $valor = ltrim($valor);
  40.         $valor = rtrim($valor);
  41.         return mysqli_real_escape_string($this->conexion, $valor);
  42.     }
  43.  
  44.     public function charset()
  45.     {
  46.        return mysqli_character_set_name($this->conexion);
  47.     }
  48.     public function consulta($sql)
  49.     {
  50.        $tipo=explode(" ",$sql);
  51.         $tipo_consulta = strtoupper($tipo[0]);
  52.         switch ($tipo_consulta) {
  53.             case 'CALL':
  54.             case 'SELECT':
  55.             case 'DESCRI':
  56.           case 'SHOW': // show tables
  57.               $resultado = mysqli_query($this->conexion, $sql);
  58.                 if (!$resultado) {
  59.                     $this->error = mysqli_errno($this->conexion);
  60.                 } else {
  61.                     if (mysqli_num_rows($resultado) == 0) {
  62.                         return false;
  63.                     } else {
  64.                         $i = 0;
  65.                         while ($row = mysqli_fetch_array($resultado, MYSQLI_ASSOC)) {
  66.                             foreach ($row as $indice => $valor) {
  67.                                 $r["$indice"][$i] = $valor;
  68.                             }
  69.                             $i++;
  70.                         }
  71.                         mysqli_free_result($resultado);
  72.                         return $r;
  73.                     }
  74.                 }
  75.                 break;
  76.             case 'INSERT':
  77.                 $resultado = mysqli_query($this->conexion, $sql);
  78.                 if (!$resultado) {
  79.                     $this->error = mysqli_errno($this->conexion);
  80.                 } else {
  81.                     return mysqli_insert_id($this->conexion);
  82.                 }
  83.                 break;
  84.             case 'DELETE':
  85.             case 'UPDATE':
  86.                 $resultado = mysqli_query($this->conexion, $sql);
  87.                 if (!$resultado) {
  88.                     $this->error = mysqli_errno($this->conexion);
  89.                 } else {
  90.                     return mysqli_affected_rows($this->conexion);
  91.                 }
  92.                 break;
  93.             default:
  94.                 $resultado = mysqli_query($this->conexion, $sql);
  95.                 if (!$resultado) {
  96.                     $this->error = mysqli_errno($this->conexion);
  97.                 } else {
  98.                     return mysqli_affected_rows($this->conexion);
  99.                 }
  100.                 break;
  101.         }
  102.     }
  103.  
  104.     public function __destruct()
  105.     {
  106.         @mysqli_close($this->conexion);
  107.     }
  108. }
  109.  
  110. ?>