Php 存储过程:如何插入关系数据?
如何将插入的值id插入到存储过程同一函数中的其他表中 例如:Php 存储过程:如何插入关系数据?,php,mysql,sql,Php,Mysql,Sql,如何将插入的值id插入到存储过程同一函数中的其他表中 例如: CREATE PROCEDURE p1(IN id_val INT, IN name_val VARCHAR(255)) BEGIN DECLARE @iJobID [INT] SET @iJobID=(INSERT INTO test(id, name) VALUES(id_val, name_val)); INSERT INTO vasu(id) VALUES(@iJobID); END; 您可
CREATE PROCEDURE p1(IN id_val INT, IN name_val VARCHAR(255))
BEGIN
DECLARE @iJobID [INT]
SET @iJobID=(INSERT INTO test(id, name) VALUES(id_val, name_val));
INSERT INTO vasu(id) VALUES(@iJobID);
END;
您可以使用
LAST\u INSERT\u ID()
DELIMITER $$
CREATE PROCEDURE p1
(
IN id_val INT,
IN name_val VARCHAR(255)
)
BEGIN
INSERT INTO test(id, name) VALUES(id_val, name_val);
SET @iJobID := LAST_INSERT_ID();
INSERT INTO vasu(id) VALUES(@iJobID);
END $$
DELIMITER ;
那么你的问题是什么?这不起作用吗?不,它不起作用,你能给我举个例子吗?错误消息告诉了您什么?嗨,罗兰,这是我收到的错误消息::(存储过程创建失败:(1064)您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解在'@iJobID[INT]SET@iJobID=(插入到测试(id,name)值中)附近使用的正确语法(第3行的id_val,name_va'失败:(1305)过程jv_phpclasses.p1不存在)您想在这一行上得到什么?SET@iJobID=(插入测试(id,name)值(id_val,name_val));
Hi JW其插入“0”值插入vasu(id)值(@iJobID);您能否显示此查询的结果DESC test
,这将显示表的结构test
这是表“test”的结构:id int(11)主键名varchar(255)为什么您要用id\u val
在该列id
上设置一个值,而您的id
列没有设置为AUTO\u INCREMENT
?要正常工作,首先id
应该设置为AUTO\u INCREMENT主键
,然后在insert语句上它应该只设置为insert INTO test(name)val(name\val);