У меня есть строка с несколькими запросами обновления, например:
$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
Как это решить. Пожалуйста, помогите мне.
Эй, ты можешь это сделать так
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';"