DELIMITER $$ CREATE DEFINER=`zukovskis_g`@`localhost` PROCEDURE `b_check_update`(IN tid INT,IN v_name VARCHAR(255),IN v_pass VARCHAR(255) ) SQL SECURITY INVOKER BEGIN IF tid > 0 THEN IF EXISTS (SELECT 1 FROM bbb WHERE name = v_name AND id != tid) THEN SELECT -1 AS result; ELSE UPDATE bbb SET name = v_name, pass = v_pass WHERE id = tid; SELECT 2 AS result; END IF; ELSE SELECT IF( EXISTS (SELECT 1 FROM bbb WHERE name = v_name AND pass = v_pass), 2, IF( EXISTS (SELECT 1 FROM bbb WHERE name = v_name), 1, 0 ) ) AS result; END IF; END$$ DELIMITER ; DELIMITER $$ CREATE DEFINER=`zukovskis_g`@`localhost` PROCEDURE `b_create`(IN `tname` VARCHAR(255), IN `tpass` VARCHAR(255)) SQL SECURITY INVOKER BEGIN IF NOT EXISTS (SELECT 1 FROM bbb WHERE name = tname) THEN INSERT INTO bbb (name, pass) VALUES (tname, tpass); ELSE SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Username already exists'; END IF; END$$ DELIMITER ; DELIMITER $$ CREATE DEFINER=`zukovskis_g`@`localhost` PROCEDURE `b_delete`(IN `tid` INT) SQL SECURITY INVOKER BEGIN DELETE FROM bbb WHERE id=tid; END$$ DELIMITER ; DELIMITER $$ CREATE DEFINER=`zukovskis_g`@`localhost` PROCEDURE `b_get_user`(IN in_name VARCHAR(50),IN in_pass VARCHAR(50)) SQL SECURITY INVOKER BEGIN SELECT IF( EXISTS ( SELECT 1 FROM bbb WHERE name = in_name AND pass = in_pass ), 1, 0 ) AS result; END$$ DELIMITER ; DELIMITER $$ CREATE DEFINER=`zukovskis_g`@`localhost` PROCEDURE `b_session_end`(IN `tid` INT) SQL SECURITY INVOKER BEGIN UPDATE bbb SET active = 0, time = null WHERE id = tid; END$$ DELIMITER ; DELIMITER $$ CREATE DEFINER=`zukovskis_g`@`localhost` PROCEDURE `b_session_start`(IN `tid` INT) SQL SECURITY INVOKER BEGIN UPDATE bbb SET active = 1, time = CURRENT_TIMESTAMP WHERE id = tid; END$$ DELIMITER ; DELIMITER $$ CREATE DEFINER=`zukovskis_g`@`localhost` PROCEDURE `b_session_status`(IN tid INT) SQL SECURITY INVOKER BEGIN -- timeout old sessions UPDATE bbb SET active = 0, time = NULL WHERE active = 1 AND `time` <= (NOW() - INTERVAL 5 MINUTE_SECOND); -- check session SELECT IF( EXISTS ( SELECT 1 FROM bbb WHERE id = tid AND active = 1 ), 1, 0 ) AS status; END$$ DELIMITER ;