public function updateMovie(Request $request, $id)
{
$request->title;
$movie = DB::connection('mysql2')->select('UPDATE cb_video SET title='.$request->title.' WHERE videoid=' . $id);
return response()->json(['status' => 'success', 'data' => $movie]);
}
Я пытаюсь обновить заголовок в БД, но выдает ошибку
SQLSTATE[42000]: Синтаксическая ошибка или нарушение прав доступа: 1064 У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашему Версия сервера MySQL для правильного синтаксиса для использования рядом с «ГДЕ videoid=1449' в строке 1 (SQL: UPDATE cb_video SET title= ГДЕ видеоидентификатор = 1449)
что я могу сделать?
Прочтите laravel.com/docs/9.x/queries и примените.






Я надеюсь, что вы найдете это полезным
$title = 'New Title';
DB::table('table_name')->where('id', $id)->update(['title' => $title]);
Спасибо
в laravel есть много лучших способов, чем то, что вы делаете, вы можете использовать построитель запросов или красноречие для выполнения своей задачи и безопасным способом
например
public function updateMovie(Request $request, $id)
{
$movie = Your_Movie_Modal::findbyId($id);
$movie->title = $request->title;
$movie->update();
return response()->json(['status' => 'success', 'data' => $movie]);
}
и как я вижу по вашей ошибке это означает что вы не отправляете заголовок в запросе
да, но мне нужно выбрать конкретную базу данных... так как же мне работать с db::connection?
в этом случае вы можете использовать #Arte Answer
DB::connection('mysql2')->table('cb_video')
->where('videoid', $id)
->update(['title' => $request->title]);
Хотя этот фрагмент кода может быть решением, включение объяснения действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос для будущих читателей, и эти люди могут не знать причин вашего предложения кода.
Ради всего святого, сейчас 2023 год... параметризуйте свои запросы! Или еще лучше использовать готовый ORM laravel... Я понятия не имею, почему вы написали такой простой запрос вручную, а не с помощью построителя запросов. Проблема, с которой вы столкнулись, возникает непосредственно из-за неправильного построения запроса... title (я полагаю) - это строка, и вы забыли ее процитировать. Если бы вы написали запрос разумным образом, эта глупая синтаксическая ошибка никогда бы не произошла. И/или из дампа кажется, что заголовок на самом деле пуст... так что, возможно, вы пытаетесь обновить его несуществующим значением. Это тоже не имеет смысла.