Foros del Web » Programando para Internet » PHP »

PHP OO Llamada procedimiento almacenado

Estas en el tema de Llamada procedimiento almacenado en el foro de PHP en Foros del Web. Buenas tardes. Estoy intentando realizar una llamada a un procedimiento almacenado pero no soy capaz de que no me de error, el código PHP que ...
  #1 (permalink)  
Antiguo 18/11/2014, 10:36
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Llamada procedimiento almacenado

Buenas tardes.

Estoy intentando realizar una llamada a un procedimiento almacenado pero no soy capaz de que no me de error, el código PHP que tengo es el siguiente

Código PHP:

<?php
class MySQL{

 var 
$conexion; var $total_consultas;

  function 
MySQL(){ 
    if(!isset(
$this->conexion)){
      
$this->conexion = (mysql_connect("","",""))
        or die(
mysql_error());
      
mysql_select_db("adminsalcantara",$this->conexion) or die(mysql_error());
    }
    
    
  }

  public function 
consulta($consulta){ 
   
    
$resultado mysql_query($consulta,$this->conexion);
    if(!
$resultado){ 
      echo 
'MySQL Error: ' mysql_error();
      exit;
    }
    return 
$resultado;
  }

  function 
fetch_array($consulta){
   return 
mysql_fetch_array($consulta);
  }

 function 
num_rows($consulta){
   return 
mysql_num_rows($consulta);
  }

 function 
getTotalConsultas(){
   return 
$this->total_consultas
  }

}







?>



<?php
include("Llama archivo que se encuentra en la parte superior");

$db = new MySQL();
  
$RefCAllSp $db->consulta->prepare("CALL pa_usuarios_existente(?)");
 


$username"sss";
$contrasena="123456";
$RefCAllSp->bind_param('s',$username$contrasena);
$RefCAllSp->execute();
//$RefCAllSp->bind_result($Usuario,$Nombre,$Paterno,$Materno);
if($db->num_rows($consulta)>0){
  
//while($resultados = $db->fetch_array($consulta)){ 
   //echo "ID: ".$resultados['id']."<br />"; 
 //}
 
echo "Usuario: ".$resultados['nombreUsuario']."<br />"
}
?>


Muchas gracias
  #2 (permalink)  
Antiguo 19/11/2014, 06:23
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Llamada procedimiento almacenado

Código PHP:

$username
"Hola";
$contrasena=mysql_real_escape_string("123456");


include_once(
'webProcedimientoAlmacenado.php');

$db = new MySQL();

$consulta $db->consulta("CALL pa_usuarios_existente(".$username.",".$contrasena." )");

 
$result $db->query($consulta);





// llamar al procedimiento almacenado
$consulta->execute();

print 
"El procedimiento devolvió".$result['nombreUsuario']. "\n"
Este código me salta lo siguiente

Error: Unknown column 'Hola' in 'field list'

¿Qué significa lo del filed list? ¿Cómo lo puedo solucionar? en el caso de que este código sea correcto.

Gracias
  #3 (permalink)  
Antiguo 19/11/2014, 06:28
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Llamada procedimiento almacenado

Ya vi a que se debía era problema de las comillas dobles
Código PHP:
$consulta $db->consulta("CALL pa_usuarios_existente('.$username.','.$contrasena.' )"); 
  #4 (permalink)  
Antiguo 19/11/2014, 10:13
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Llamada procedimiento almacenado

Ahora me he tropezado con otra cosa. Estoy intentando llamar ejecutar al procedimiento almacenado añadiento del código

Código PHP:
$consulta $db->consulta("CALL pa_usuarios_existente('$username','$contrasena' )");
$consulta->execute(); 
y me salta el siguiente error Call to a member function bindParam() on a non-object in

¿Cual seria la solución?


Gracias
  #5 (permalink)  
Antiguo 19/11/2014, 10:48
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Llamada procedimiento almacenado

Debes usar mysqli, en el manual esta super explicado con ejemplos.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #6 (permalink)  
Antiguo 20/11/2014, 06:38
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Llamada procedimiento almacenado

Gracias pero me da el siguiente error

Código PHP:
$consulta->bind_param("s"$username$contrasena); 
Call to a member function bind_param() on a non-object in
  #7 (permalink)  
Antiguo 20/11/2014, 06:39
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Llamada procedimiento almacenado

Perdon en lugar de "s" le he añadido 1 como aparece en el manual y nada, sigue dandome error

Etiquetas: almacenado, llamada, mysql, procedimiento, 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 21:10.