我有一个不是为Laravel设计的数据库。我正在使用Laravel构建一个小型api。因此,我无法使用Llaravel结构化查询。该查询正在运行,但需要能够检索插入的ID号。
这是我正在使用的插入内容。
$results = DB::insert("
SELECT * FROM insrdata.add_user(
:assocID,
:accountID,
:firstName,
:middleName,
:lastName,
:address1,
:address2,
:city,
:state,
:zipCode,
:phone,
:email,
:birthDateMMDDYYYY,
:gradeLevelID,
:commentText
)
",
[
'assocID' => $request->input('assocID'),
'accountID' => $request->input('accountID'),
'firstName' => $request->input('firstName'),
'middleName' => $request->input('middleName'),
'lastName' => $request->input('lastName'),
'address1' => $request->input('address1'),
'address2' => $request->input('address2'),
'city' => $request->input('city'),
'state' => $request->input('state'),
'zipCode' => $request->input(''),
'phone' => $request->input(''),
'email' => $request->input('email'),
'birthDateMMDDYYYY' => $request->input('birthDateMMDDYYYY'),
'gradeLevelID' => $request->input('gradeLevelID'),
'commentText' => $request->input('commentText')
]
);
if($results) {
$return_array = array(
'p_contact_id' => "",
'p_result' => "O.K."
);
}
我需要获取插入的ID。
答案 0 :(得分:0)
我认为如果插入成功,您可以通过 accountID (我认为每个被保险人都是唯一的)来查询它并获取其ID。
答案 1 :(得分:0)
如您所说,这有点复杂,不使用Laravel结构化查询。如果可以稍微调整一下查询,并确保在插入之前验证输入数据以防止SQL注入,则应该可以使用insertGetId
。您将不得不做一些工作,但是要做一些事情:
$id = DB::table('whateverYourTableNameIs')->insertGetId([
'assocID' => $request->input('assocID'),
'yourSelectField' => DB::raw("yourRawSelect"),
// etc.
]);
答案 2 :(得分:0)
这称为“获取最后插入的ID”。这里是Laravel中关于它的文档。
https://laravelcode.com/post/laravel-55-get-last-inserted-id-with-example