PHP: ¿Cómo puedo ejecutar procedimientos almacenados desde php hacia MS SQL?

De Foros del Web

Pues lo único que se necesita es ejecutar un par de instrucciones del tipo mssql_xxxx y listo, les dejo un ejemplo.

Código PHP:

<?
$msuscriptor_numero='79714306';
$msuscriptor_nombre="";
$db_conexion= mssql_connect(host, user, pass) or die("No se pudo conectar a la Base de datos");
mssql_select_db("base de datos") or die(mssql_error());
 
   $stmt=mssql_init("buscarXnumero",$db_conexion); //buscar por numero es el nombre del procedimiento almacenado 
[b]//aqui agregados los parametros de entrada[/b]
   mssql_bind($stmt,"@suscriptor_numero",$msuscriptor_numero,SQLINT4);
 
[b]//aqui agregamos los parametros de salida[/b]
mssql_bind($stmt,"@suscriptor_nombre",&$msuscriptor_nombre,SQLVARCHAR,TRUE,False,50);
 
[b]//aqui agregamos el parametro return del procedimiento almacenado[/b]
 
   mssql_bind($stmt,"RETVAL",&$filas,SQLINT4);
 
[b]aqui ejecutamos el procedimiento almacenado [/b]
   mssql_execute($stmt);
    echo "<h2>numero ".$msuscriptor_numero." Nombre ".$msuscriptor_nombre." </h2>";
   mssql_close($db_conexion);
?> 

Básicamente con la instruccion INIT inicializamos la llamada al procedimiento almacenado. con bind agregamos nuestros parámetros, ojo, si son de entrada, enviamos nuestras variables PHP directamente mssql_bind($stmt,"@suscriptor_numero",$msuscriptor _numero,SQLINT4); pero si nos va a retornar un valor, debemos pasarlo por referencia mssql_bind($stmt,"@suscriptor_nombre",&$msuscripto r_nombre,SQLVARCHAR,TRUE,False,50);


--xcars 06 Jun 2005

Este artículo es parte de las FAQs de PHP y el Manual de PHP.

Herramientas personales