saeed rajabi Ответов: 1

Как я могу получить userid из процедуры?


привет,
я написал mysql-запрос (процедуру) для insert to user(userID,Role), и userID-Это автоматическое приращение. это работает верно. я хочу получить userID без параметров, но не знаю как?!
мой процедурный запрос :

CREATE DEFINER=`root`@`localhost` PROCEDURE `Insert_User`(IN `Role` INT(1))
BEGIN
INSERT INTO user(UserID, Role)VALUES(null, Role);
END

я назвал его php-кодом:
if(isset($_POST['sbm']))
	{
		$pass = '1050585712';
		$role = $_POST['user'];
		switch($role)
		{
			case 0 :$role = 0;break;
			case 1 :$role = 1;break;
			case 2 :$role = 2;break;
			case 3 :$role = 3;break;
			case 4 :$role = 4;break;
			default:$role = 3;break;
		}
		if($con = mysqli_connect("localhost", "root", $pass))
		{
			mysqli_select_db($con, "toggery");
			mysqli_set_charset($con, "utf8");
			$p = $con -> prepare("CALL Insert_User(?)");
			$p -> bind_param('i', $role);
			$p -> execute();
		}
		else
		{
			echo 'db connection error!';
		}
	}


Что я уже пробовал:

как я могу получить UserID с помощью php?
и как я должен изменить запрос процедуры для этого?

1 Ответов

Рейтинг:
1

Andy Lanng

select LAST_INSERT_ID()

добавьте это к концу вашей процедуры.

Там может быть небольшой шанс состояния гонки. Боюсь я не слишком хорошо разбираюсь в mysql