| |||
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"; ?> |
| ||||
Re: procedimientos almacenados Tu problema es que no sabes cuantos parametros van a ser puestos en el metodo? si es eso... pues ponlos en null $stmt->bind_param($par1=null,$par2=null,$par3=null); y ya en base a eso puedes trabajar y no te va a dar error, si no te pasaron algun parametro.
__________________ -URL= Go PHP5. -Age=22. -Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS. |
| ||||
Re: procedimientos almacenados Es mejor usar cosas mas limpias, PHP nos da dos funciones muy buenas func_num_args y func_get_args. Un ejemplo: Código PHP: |