获取MySQL中最后一个插入的ID表单存储过程
如何获取上次插入的id?获取MySQL中最后一个插入的ID表单存储过程,mysql,Mysql,如何获取上次插入的id? CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_insertzonemsg` (IN User_Id INT(10), IN zid INT(10), IN update_titles VARCHAR(50), IN textarea1s TEXT, IN filupload1s TEXT, IN audio1s VARCHAR(100), OUT out_id IN
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_insertzonemsg`
(IN User_Id INT(10),
IN zid INT(10),
IN update_titles VARCHAR(50),
IN textarea1s TEXT,
IN filupload1s TEXT,
IN audio1s VARCHAR(100),
OUT out_id INT(10))
BEGIN
INSERT INTO zone_message_master
**(user_id,ZoneID,update_title,textarea1,filupload1,
audio1,LastUpdate)**
VALUE
**(User_Id,zid,update_titles,textarea1s,
filupload1s,audio1s,NOW());**
SELECT **id** as **out_id**
FROM **zone_message_master** LAST_INSERT_ID();
END$$
我需要将最后插入的ID作为
out\u ID
返回表zone\u message\u master
?您需要使用SET语句。比如说-
表:
CREATE TABLE table1(
id INT(11) PRIMARY KEY AUTO_INCREMENT,
column1 VARCHAR(10),
column2 VARCHAR(10)
);
程序机构:
BEGIN
INSERT INTO table1(column1, column2) VALUES ('value1', 'value2');
SET out_param = LAST_INSERT_ID();
END
注意,在INSERT语句中未指定该ID字段。该值将自动插入;当然,此ID字段必须具有自动增量选项。您可以通过以下代码获得最后一个插入ID:- 只需创建一个存储过程:
CREATE DEFINER=`root`@`localhost` PROCEDURE `add_enquiry`(
IN EnquiryNo varchar(40),
IN OpeningDate date,
IN ClosingDate date,
IN CreatedOn date,
OUT LID int(11)
)
BEGIN
INSERT into `enquiries` SET `enquiry_no`=EnquiryNo ,`opening_date`=OpeningDate ,`closing_date`=ClosingDate,`created_on` =CreatedOn;
SET LID = LAST_INSERT_ID();
END
访问PHP:
$rs = $dbh->query('CALL add_enquiry("ENQ" ,"2016-08-19","2016-08-18", "2016-11-23",@LID)');
$rs2 = $dbh->query("SELECT @LID as id");
$row = $rs2->fetchObject();
echo $row->id;
这个问题与PHP无关,也没有被标记为PHP。MySQL完全独立于PHP,您的PHP代码示例不适合这个答案。