|
[¹®¹ý] MYSQL ¿¡¼ Stored Procedure »ç¿ëÇϱâ(³»ºÎ Transaction »ç¿ë°¡´É)
|
|
±Û¾´ÀÌ |
  Á¦·Ï |
³¯ Â¥ |
06-08-16 19:39 |
Á¶ ȸ |
5738 |
0. Áغñ»çÇ× : MYSQL5.x ÀÌ»ó. À¥¿¡¼ »ç¿ëÇÒ °æ¿ì PHP5.x ÀÌ»ó
1. Å×ÀÌºí »ý¼º
CREATE TABLE `TranTest` (
`num` int(11) NOT NULL auto_increment,
`col01` varchar(32) default NULL,
PRIMARY KEY (`num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `TranTest2` (
`num` int(11) NOT NULL auto_increment,
`col01` varchar(32) default NULL,
PRIMARY KEY (`num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2. ÀÔ·Â ¿ë ÇÁ·Î½ÃÀú »ý¼º
CREATE PROCEDURE `Prc_TranTest_Input`
(
in in_col01 varchar(32)
)
BEGIN
INSERT INTO TranTest SET col01 = in_col01;
END;
3. SELECT ¿ë ÇÁ·Î½ÃÀú »ý¼º
CREATE PROCEDURE `Prc_TranTest_Select`
(
in in_col01 varchar(32)
)
BEGIN
SELECT num, col01 FROM TranTest WHERE col01 like concat(in_col01, '%') ;
END;
4. Transaction ¿ë ÇÁ·Î½ÃÀú »ý¼º
CREATE PROCEDURE `Prc_TranTest_InError`
(
)
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ''
BEGIN
DECLARE dbErr int default 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET dbErr = -1;
START TRANSACTION;
INSERT INTO TranTest SET col01 = '1234';
INSERT INTO TranTest2 SET col012 = '1234'; //ÀϺη¯ ¿¡·¯°ªÀ» ³»±âÀ§ÇØ Ä®·³¸íÀ» ´Ù¸£°Ô Àû½À´Ï´Ù.
IF dbErr < 0 THEN
ROLLBACK;
ELSE
COMMIT;
END IF;
END;
5. PHP ¸¦ ÀÌ¿ëÇÏ¿© SELECT ¹× ÀÔ·ÂÇϱâ
$mysqli = new mysqli("localhost", "USERID", "USERPW", "USERDB");
if (mysqli_connect_error()) {
printf("Connect Failed : %s\n", mysqli_connect_error());
exit;
}
$mysqli->query("set names utf8");
//SELECT
if($qry = $mysqli->query("Call Prc_TranTest_Select('123')")) {
$rs = $qry->fetch_object();
echo $rs->col01;
}
//INSERT TranTest;
$mysqli->query("Call Prc_TranTest_InError()");
|
|
|
°Ô½Ã¹° 42°Ç
(ÁÖ)ÇÇ¿¡ÀÌÄ¡ÇǽºÄð´åÄÄ
»ç¾÷¹øÈ£ 119-86-25309
ÅëÆÇ 2010-¼¿ï±Ýõ-0082È£
Á÷¾÷Á¤º¸ ¼¿ï°ü¾Ç Á¦2010-03È£
¼¿ï½Ã ±Ýõ±¸ °¡»êµ¿ 371-50 ¿¡À̽ºÇÏÀ̾صå3Â÷ 9Ãþ
´ëÇ¥ ÀÓ¼ºÁø
°³ÀÎÁ¤º¸º¸È£Á¤Ã¥ ¹× ´ã´ç ÇϹÌÇâ
ÀüÈ 02-2627-6637
ÆÑ½º 02-2624-1371
E-mail member@phpschool.com
Copyright PHPSCHOOL.com All rights reserved.