возврат вставить идентификатор на ни один laravel db настроен - PullRequest
0 голосов
/ 29 мая 2019

У меня есть база данных, которая не была разработана для Laravel.Я строю небольшой API, используя Laravel.Таким образом я не могу использовать Llaravel структурированные запросы.Запрос работает, но нужно иметь возможность получить идентификатор вставки.

Это вставка, которую я использую.

$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."
    );
}

Мне нужно получить идентификатор вставки.

Ответы [ 3 ]

0 голосов
/ 29 мая 2019

Как вы сказали, это немного сложно без использования структурированных запросов Laravel.Если вы можете немного подправить свой запрос и убедиться, что вы проверяете входные данные перед вставкой, чтобы предотвратить внедрение SQL, вы сможете использовать insertGetId.Вам придется проделать некоторую работу, но что-то вроде:

$id = DB::table('whateverYourTableNameIs')->insertGetId([
    'assocID' => $request->input('assocID'),
    'yourSelectField' => DB::raw("yourRawSelect"),
    // etc.
]);
0 голосов
/ 29 мая 2019

Это называется "получение последнего вставленного идентификатора". Вот документация в Laravel по этому поводу.

https://laravelcode.com/post/laravel-55-get-last-inserted-id-with-example

0 голосов
/ 29 мая 2019

Я думаю, что если вставка прошла успешно, вы можете запросить ее по accountID (что, я полагаю, уникально для каждого доверенного лица) и получить ее идентификатор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...