Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/04/2007, 23:06
mmesa84
 
Fecha de Ingreso: enero-2006
Mensajes: 47
Antigüedad: 19 años, 1 mes
Puntos: 0
procedimientos almacenados



Hola que tal

Necesito que alguien me ayude en lo siguiente.

Estoy haciendo una interfaz de abstraccion de acceso a datos utilizando mysqli.Lo que pasa es que quiero hacer una funcion que tu le pases en nombre del procedimiento(o query) y a continuacion en un orden la cantidad de parametros(si lo requiere); para ejecutar dicho procedimiento(o query).

La primera parte de la funcion la tengo echa que es la de coger en nombre del procedimiento(o query) y los parametros si lo requiere.

Pero viene una inconveniencia.
Que como no se de antemano la cantidad de parametros y el tipo de valor de los parametros a la hora de creer la funcion $stmt->bind_param()
o mysqli_stmt_bind_param() no se como llenar esta funcion.

Que puedo hacer

Nota: ya utilice la funcion eval()

Para una idea mire el codigo que sigue; que si funciona pero no es lo que quiero hacer. Como les dije anteriormente lo que quiero hacer es una clase que tu le pases la consulta o el nombre del procedimiento almacenado y ella se encargue de hacerlo todo(como si el desarrollador no supiera nada de mysqli).

espero que me haya esplicado bien.

<?php
$connect = new mysqli(null,"root","marcel","curso");

if($connect){

$connect->autocommit(false);

$stmt = $connect->stmt_init();

$dia = 145;

$ano = 125;

$stmt->prepare("INSERT INTO fecha VALUES(?,?)");

$stmt->bind_param('ii',$dia,$ano);// a qui esta el problema

$stmt->execute();

$error = $stmt->error;

if($error == ""){

$stmt = $connect->stmt_init();

$nombre = "marcel";

$stmt->prepare("INSERT INTO persona VALUES(?)");

$stmt->bind_param('s',$nombre);

$stmt->execute();

$error = $stmt->error;
}

if($error != "") {

echo $error;

$connect->rollback ();

}
else

$connect->commit();

$connect->close();
}
else

echo "Error en la conexion";

?>