ccc

Mostrando entradas con la etiqueta Procedimientos Almacenados. Mostrar todas las entradas
Mostrando entradas con la etiqueta Procedimientos Almacenados. Mostrar todas las entradas

SQL Server: Procedimientos almacenados

Desde el Microsoft SQL Server Management Studio crear un procedimiento almacenado:

CREATE PROCEDURE buscando
(
@buscar varchar(30)
)
as
begin
SELECT titulo FROM peliculas  WHERE titulo LIKE '%' + @buscar + '%'
end

Y ya desde el PHP para llamarlo:
$server = "localhost\SQLEXPRESS01";
$cnnInfo = array("Database"=>"despotricador", "UID"=>"leandro", "PWD"=>"666666666","CharacterSet"=>"UTF-8");

$cnn = sqlsrv_connect($server, $cnnInfo);

if ($cnn) {
echo "BD: Conexión correcta<hr>";
}
else {
echo "BD: Error al conectar";
die( print_r( sqlsrv_errors(), true));
}


$sql = "EXEC dbo.buscando @buscar = ?";

$valor = 'i';
$params = array(
array($valor, SQLSRV_PARAM_IN)
);
$reg = sqlsrv_prepare($cnn, $sql, $params);
if (!sqlsrv_execute($reg)) {
    echo "Error";
    die;
}

 while ($row = sqlsrv_fetch_array($reg, SQLSRV_FETCH_ASSOC)) {
    echo $row["titulo"].":".$row["anno"]."<br>";
 }

Procedimientos almacenados (Stored procedures)

Se pueden crear directamente desde un gestor como el Heidi o si se quiere a pelo en el phpmyadmin:

CREATE DEFINER=`lsgthedn`@`%` PROCEDURE `prueba`(
IN `palabraPel` VARCHAR(50)
)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
select * from pel_youtube where nom_pel_youtube LIKE CONCAT('%', palabraPel , '%') ORDER BY nom_pel_youtube;
END


Y luego para ejecutarlo desde el PHP:
$cnn = new mysqli("localhost", "xxxx", "xxx", "bd_edc");
$reg = mysqli_query($cnn, "CALL prueba('las s')");

while ($row = mysqli_fetch_assoc($reg)) {
    echo $row["nom_pel_youtube"]."<br>";
}