Me hace falta acceder a un procedimiento en una BD gestada por MySQL.
¿Cómo lo hago?
Si pueden me dicen como acceder de la misma forma a SQLServer.
Gracias por adelantado
| |||
Procedimientos Almacenados en PHP Me hace falta acceder a un procedimiento en una BD gestada por MySQL. ¿Cómo lo hago? Si pueden me dicen como acceder de la misma forma a SQLServer. Gracias por adelantado |
| |||
Cita: Usa el buscador del foro .. Tenemos una FAQ al respecto también .. te invito a leerlas.En realidad un procedimiento almacenado en general y válido para casi cualquier BBDD que accedas se trata de que uses el SQL adecuado para llamar al procediminto (eso si lo desconoces primero empieza por ver un manual de SQL al respecto) y ejecutarlo con la función genérica xxxx_query(). El resultado siempre lo "procesas" con funciones clásicas xxx_fetch_array() o similares. Para Msysql (suponemos que usas la versión adecuada de Msyql y ya tienes creado tu Procedimiento Almacenado?): Vía PHP con la extensión mysqli (no mysql clásica) http://www.php.net/mysqli Aquí comentan el uso con AdoDB (una capa de abstracción de BBDD): http://razoduke12.blogspot.com/2006/...rocedures.html FAQ para ejecutar Procedimientos almacenados en MS SQL Server: http://www.forosdelweb.com/showpost....&postcount=148 Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| |||
Cita: Con las extensioens de Msyql clásicas (cliente antigüo de Mysql) también funciona?Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| |||
Bueno aca un ejemplo tenemos la tabla Persona en una base de datos MySql llamada Prueba ---------- | PRUEBA| ---------- | Id | ----------- | Nombres| ----------- | Apellidos| ----------- Cita: Procedure sp_InsertarPersona(IN Id INTEGER,IN Nombres VARCHAR(50),INT Apellidos VARCHAR(50)) BEGIN DECLARE a INTEGER; INSERT INTO persona VALUES(Id,Nombres,Apellidos); SET a=(SELECT @@error_count); IF a=0 THEN COMMIT; ELSE ROLLBACK; END; END Código PHP: Yoshiro Juan Víctor Carbajal Cerín Ing. de Computacion y Sistemas Última edición por Cluster; 12/10/2006 a las 18:37 |
| |||
Gracías antetodo por el ejemplo .. sólo una acotación: Código PHP: ¿Podrías aclarar ese punto para redondear el tema? Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
Perdon no? pero no entendi ... Cita: mssql_execute() funciona solo con SQLServer... y efectivamente es para llamar a procedimientos almacenados, que también pueden ser llamados con la función mssql_query()Deberíamos usar mssql_query() o mssql_execute() en lugar de mysql_query() .. no?. Cual sería la función adecuada? .. Según la documentación de PHP para ejecutar un "Store procedure" se debería usar "mssql_exectute()" .. aunque con la sintax SQL que indicas en el ejemplo tal vez se deba usar sólo mssql_query() Si estoy conectado a mysql no puedo usar funciones para MSSQL saludos!
__________________ Mi Blog http://turco7.blogspot.com Usuario Linux : 404289 Mi última página: http://www.digitalservicecba.com.ar - Reparacion de camaras digitales! |
| ||||
Re: Procedimientos Almacenados en PHP En un procedimiento almacenado tienes tanto INSERTs como SELECTs, UPDATEs, etc. Asi que debe de servir con cualquier comando SQL valido. Saludos. |
| ||||
Re: Procedimientos Almacenados en PHP ya solucione mi problema espero les sirva el codigo: // mysqli way $user = "127787"; $pass = "yessenia"; $db = "hipo"; $link = mysqli_connect("localhost",$user,$pass); if (mysqli_connect_errno()) { echo "connection error"; exit(); } $conn = mysqli_select_db ($link,$db); if (! $conn) { echo "error de bd"; } //$result = mysqli_query( "CALL sp_select_usuarios(10)",$link); $result = mysqli_query($link,'call sp_select_usuarios(10);'); if (! $result) { echo "error de procedure"; exit; } while ($aTmp = mysqli_fetch_array($result,MYSQLI_NUM)) { // printf ("%s (%s)\n", $aTmp["usu_id"], $aTmp["usu_dv"]); con los nombre de campo no funcion si con las posiciones como la linea de abajo printf ("{%s} (%s)\n", $roaTmpw[0], $aTmp[2]); }
__________________ *****Si Hasta En La Cana X Ti Estado***** |
| ||||
Re: Procedimientos Almacenados en PHP Te recomendaria usar mysqli_multi_query cuando llames a procedimientos almacenados, es recomendado por el propio manual en caso de que tu procedimiento regrese multiples usuarios. Saludos. |
| |||
Re: Procedimientos Almacenados en PHP Hola amigos, Me entro la inquietud de programar en php el caso es que en Server 2000 se utilizan procedimientos almacenado a igual que en mysql algo que no savia jejeje Pude crear un procedimiento almacenado en el que pasaba los parámetros y lo mandaba llamar en PHP código con $myvar=mysql_query("CALL myproc('".$Par1."','".$ Par2."')",$con); Eso me funciona Gracias a los comentarios que aquí encontre El problema es que no e podido mandar llamar el Procedimiento almasenado con una selecion de una tabla SELECT * FROM `mytabla`.`mytab`; Dentro del procedimiento No e podido resolver el problema y se los agradeseria de antemano Gracias Att ZaDer |
| |||
Re: Procedimientos Almacenados en PHP GatorV Gracias por tu contestacion fue muy rapida molestandote otra ves tengo avilitados en php.ini [PHP_MYSQLI] extension=php_mysqli.dll para utilizar mysqli_multi_query y lla ise lo que me dijieron de echo no me marca ningun error cuando corro el script solo no me muestra la informacion de la seleccion en la tabla es algo raro jejjjee. en todo caso le segire intentando y gracias por tu contestacion Att ZaDer |