在没有Laravel数据库的情况下返回插入ID

时间:2019-05-29 00:03:43

标签: php mysql laravel postgresql api

我有一个不是为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。

3 个答案:

答案 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