MySQL Stored Procedures กับ การประยุคใช้ใน PHP

สร้างฐานข้อมูล

CREATE DATABASE `test`;

สร้างตาราง

DROP TABLE IF EXISTS `test`.`users`; 
CREATE TABLE `test`.`users` ( 
`users_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, 
`first_name` VARCHAR(100) NOT NULL, 
`last_name` VARCHAR(100) NOT NULL, 
PRIMARY KEY (`users_id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8;

เพิ่มข้อมูล

INSERT INTO `test`.`users` VALUES (NULL, ‘siriwat’, ‘chanakhun’), (NULL, ‘John’, ‘dolota’);

สร้าง Stored Procedure

DELIMITER $$ 
DROP PROCEDURE IF EXISTS `test`.`get_user`$$ 
CREATE PROCEDURE `test`.`get_user` ( 
IN userId INT, 
OUT firstName VARCHAR(100), 
OUT lastName VARCHAR(100) 
) 

BEGIN 
SELECT first_name, last_name INTO firstName, lastName 
FROM users 
WHERE users_id = userId; 
END $$ 
DELIMITER ;

 

หลังจากนั้น การสร้าง Stored Procedure จะเป็นแบบนี้

DELIMITER $$ 
DROP PROCEDURE IF EXISTS `test`.`get_users`$$ 
CREATE PROCEDURE `test`.`get_users`() 
BEGIN 
SELECT * FROM users; 
END $$ 
DELIMITER ;

 

การประยุคใช้ ใน PHP

$mysql = mysql_connect(‘localhost’, ‘example’, ‘example’);
mysql_select_db(‘test’, $mysql);

$rs = mysql_query( ‘CALL get_user(1, @first, @last)’ );
$rs = mysql_query( ‘SELECT @first, @last’ );
while($row = mysql_fetch_assoc($rs))
{
debug($row); // นำค่าที่ได้ไป ใช้งานต่อไป
}

Leave a Reply

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น