как я могу отличить, если новая строка вставлена или не использовать Laravel DB::insert()
, мой запрос:Laravel 5: дифференцироваться, если новая строка вставляется в БД
$return = DB::insert("
INSERT IGNORE INTO groups
(uid,name)
VALUES
({$uid},'{$name}')
");
echo $return; // 1 in both cases
я нашел в обоих случаях, если новая строка вставляется возвращается 1
и если нет (из-за дублирования первичного ключа) возвращает 1
.
класс «Осветите \ Database \ MySqlConnection» не имеет метод «insertGetId» HTTPS : //laravel.com/docs/5.1/queries#inserts – mwafi
Метод insertGetId является частью QueryBuilder https://laravel.com/api/5.2/Illuminate/Database/Query/Builder.html#method_insertGetId, d должен указывать массив параметров при его использовании, и он не имеет никакого способа указать условие IGNORE. Там было некоторое обсуждение, но ответ заключался в том, чтобы просто использовать необработанные запросы https://github.com/laravel/framework/issues/9612, которые в этом случае не помогают. –
Да, теперь я вижу, в чем проблема. У меня есть предложение, хотя я надеюсь, что он может помочь –