PHP-将查询结果插入另一个查询语句

时间:2016-11-10 07:33:46

标签: javascript php cordova

我想一起运行这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"')" ;

3 个答案:

答案 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,请使用列别名。