Массовое обновление в Laravel

0

У меня есть строка с несколькими запросами обновления, например:

$string = "UPDATE 'student' SET 'isams_id'=0001,'name'='stu name','registration_id'='258911','classid'=2,'section'='A','house_name'='ELM','status'=1,'updated_at'='2018-06-29 06:49:15' WHERE 'registration_id'='258911'; UPDATE 'student' SET 'isams_id'=0002,'name'='xxx,'registration_id'='258912','classid'=3,'section'='A','house_name'='sss','status'=1,'updated_at'='2018-06-29 06:49:15' WHERE 'registration_id'='258912';"

Например, у меня в моей строке около 2500 запросов на обновление. Для массового обновления я использую DB::update( DB::raw($string)); , Но это возвращает ошибку,

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE 'student' SET 'isams_id'=0002,'name'='xxx','registration_i' at line 1

Как это решить. Пожалуйста, помогите мне.

  • 0
    Почему вы не используете функциональность Database Query Builder ? Насколько я вижу, нет утверждений, которые требуют необработанного утверждения. Или откуда вы берете эти строки запроса?
Теги:
laravel-5
bulkupdate

1 ответ

0

Эй, ты можешь это сделать так

DB::update(DB::raw($string));

Также вы пропустили одну одинарную цитату. Это должно быть так

$string = "UPDATE 'student' SET 'isams_id'=0001,'name'='stu name','registration_id'='258911','classid'=2,'section'='A','house_name'='ELM','status'=1,'updated_at'='2018-06-29 06:49:15' WHERE 'registration_id'='258911'; UPDATE 'student' SET 'isams_id'=0002,'name'='xxx','registration_id'='258912','classid'=3,'section'='A','house_name'='sss','status'=1,'updated_at'='2018-06-29 06:49:15' WHERE 'registration_id'='258912';"
  • 0
    да, но все та же проблема
  • 0
    Вы пропустили одну цитату. Я отредактировал свой пост. Проверьте
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню