PHP

Хранимые процедуры в MySQL

Хранимые процедуры в MySQL позволяют:

  • сократить объем передаваемых sql-запросов
  • разделить программный код и sql-запросы
  • обеспечить большую безопасность, так как sql-запросы не будут передаваться по сети

Пример создания двух хранимых процедур show_info() и add_info() в MySQL.
DELIMITER $$
CREATE PROCEDURE show_info()
BEGIN
SELECT name, info FROM info;
END$$
CREATE PROCEDURE add_info(IN myname char(255),IN myinfo char(255))
BEGIN
INSERT INTO info (name, info) VALUES (myname, myinfo);
END$$
DELIMITER ;

Для доступа к хранимым процедурам используется оператор CALL. Рассмотрим пример обращения к хранимой процедуре из PHP.

<?php
header("Content-Type: text/html; charset=utf-8");
$hostname = "localhost";
$userdb = "";
$passworddb = "";
$db = "test";
$mysqli = new mysqli($hostname, $userdb, $passworddb, $db);
$result = $mysqli->query("call add_info('test','test')");
$result = $mysqli->query("call show_info()");
while($row=$result->fetch_array(MYSQLI_ASSOC)){
echo $row['name'] . $row['info'];
}
?>

Удаление хранимых процедур выполняется следующим образом:
DROP PROCEDURE show_new_info;
DROP PROCEDURE add_new_info;


Статьи:


copyright © 2012 Все права защищены.