我想一起运行这3个查询。 如何从第二个查询中获取Case_ID以插入第三个查询的Case_ID?
$query = "insert into `Case`(`informant_userid`,`CaseName`,`CaseTime`) values ('" . $informant_userid . "','" . $CaseName . "',now())";
$query = "SELECT `Case_ID` from `Case` ORDER BY `Case_ID` DESC LIMIT 1 ";
$query = "insert into Picture (Case_Pic,Case_ID) values ('" .addslashes($imagefile). "','" .$Case_ID"')" ;
答案 0 :(得分:1)
您可以创建存储过程以一起运行此查询。
示例:
BEGIN
insert into `Case`(`informant_userid`,`CaseName`,`CaseTime`) values ('" . $informant_userid . "','" . $CaseName . "',now());
SET out_param = LAST_INSERT_ID();
END
您可以使用out_param
值作为案例编号,也可以运行选择查询并将值分配给变量,如下所示。
SELECT @param1 = col1, @param2 = col2, ...
FROM TABLE1
WHERE <where_clause>
您可以在here
中查看更多详情答案 1 :(得分:1)
我认为CaseID
是一个自动增量列。使用LAST_INSERT_ID()
获取最近INSERT
中分配的值。
$query = "insert into `Case`(`informant_userid`,`CaseName`,`CaseTime`) values ('" . $informant_userid . "','" . $CaseName . "',now())";
// execute $query
$query = "insert into Picture (Case_Pic,Case_ID) values ('" .addslashes($imagefile). "', LAST_INSERT_ID())" ;
// execute $query
答案 2 :(得分:1)
您可以使用INSERT INTO SELECT语句进行一些小技巧。此语句将SELECT查询的结果插入目标表(Picture)。
"INSERT INTO Picture (Case_Pic,Case_ID)
SELECT '" . addslashes($imagefile) . "' AS Case_Pic, Case_ID FROM `Case`
ORDER BY Case_ID DESC LIMIT 1"
要在结果中包含Case_Pic,请使用列别名。