PHP: вставка массива json в mysql с использованием laravel

#php #mysql #laravel #eloquent

#php #mysql #laravel #красноречивый

Вопрос:

  • Ниже приведен запрос mysql, который отлично работает в mysql

 UPDATE call_queue SET missed_interpreter_ids = JSON_ARRAY_INSERT(missed_interpreter_ids, '$[20]', CONVERT(2, char)) WHERE id = 58;
  
  • Тот же запрос, который я пытаюсь написать в laravel, как показано ниже

 $data['provider_id']=$provider['id'];
$data['missed_interpreter_ids']=DB::raw("JSON_ARRAY_INSERT(missed_interpreter_ids, '$[20]', CONVERT($interpreter_id, char))");
$call_id=DB::table("xxx")->where('id',$callqueue_id)->update($data);
return $call_id; 
  
  • Но этот приведенный выше запрос laravel, который я написал, создает

 "message": "Array to string conversion",
"exception": "ErrorException",
"file": "C:\xampp\htdocs\laravel-web\app\Provider.php",
"line": 118
  

Комментарии:

1. сначала вам нужно преобразовать массив в строку. Использование json_encode($array)

2. @deepesh: спасибо за предложение, можете ли вы помочь мне исправить приведенный выше код, который я написал: UPDATE call_queue SET missed_interpreter_ids = JSON_ARRAY_INSERT(missed_interpreter_ids, ‘$ [20]’, CONVERT(2, char)) ГДЕ id = 58;

3. у меня есть цикл, и значения должны вставляться в json одно за другим

Ответ №1:

эта проблема была исправлена, я только сейчас увидел, что передаю массив вместо значения. Спасибо за помощь