#php #mysql #laravel #sql-update
#php #mysql #laravel #sql-обновление
Вопрос:
Я пишу код для сервера, и одна из функций, которые я должен выполнить, должна обновить все поля таблицы (обычно) пользователя с определенным идентификатором. Функции удаления и выбора работают отлично, но эта, похоже, вообще не работает. Ошибка является фатальной ошибкой: вызов функции-члена fetchAll() при логическом вводе…
Я попытался создать меньшую функцию, которая обновляет, думая, что, возможно, причина ее сбоя заключалась в том, сколько аргументов я ей давал. Однако никаких изменений в результатах
function update($request, $response, $args){
$db = $this->db;
$query = "UPDATE usuario set IdRh = ". $args['idRh'].", IdEps =".$args ['IdEps'].", IdTipoDeDocumento =".$args['IdTipoDeDocumento'].", NroDeDocumento=".$args['NroDeDocumento'].", Nombre=".$args['Nombre'].", Apellido=".$args['Apellido'].",TelefonoFijo=".$args['TelefonoFijo'].", Celular=".$args['Celular'].", Email = ".$args['Email'].", Direccion =".$args['Direccion'].", Contrasena=".$args['Contrasena'].", FechaDeNacimiento =".$args['FechaDeNacimiento']." where id=". $args['id']."";
$result = $db->query($query);
return $response->withJson(
[
"status" => 101,
"data" => $result->fetchAll(),
"message" => "Usuario de Id: " .$args['id']. " ha sido actualizado.",
], 200
);
}
$app->get('/usuariou/{id}/{IdRh}/{IdEps}/{IdTipoDeDocumento}/{NroDeDocumento}/{Nombre}/{Apellido}/{TelefonoFijo}/{Celular}/{Email}/{Direccion}/{Contrasena}/{FechaDeNacimiento}', "UsuarioController:update");
Я просто хочу обновить поля и быстро избавиться от ошибки.
Ответ №1:
На мобильных устройствах, так что простите грамматические ошибки, давайте начнем с вашей функции и предположим, что вы используете laravel 5
Public function update(Request $request, $args){
//...code
}
Похоже, что вы не вызываете запрос для фактической передачи каких-либо данных, поэтому нам нужно вызвать метод запроса вместе с переменной запроса.
Во-вторых, вы должны создать модель с нужной вам таблицей базы данных, чтобы она выглядела так.
Public function update(Request $request, $args){
$data = $request->all();
$query = Usario::update([
‘Value_1’ => $data[‘value’],
]);
If($query){
Return response()->json([status" => 101,
"data" => $result->fetchAll(),
"message" => "Usuario de Id: " .$args['id']. " ha sido actualizado.",
], 200
}
}
Здесь мы передаем наши значения методу обновления, который вызывается в созданной модели, вторая проблема заключается в том, что когда вы используете fetch all, я считаю, что он возвращает значение bool, а не какие-либо результаты
Итак, мы можем попробовать что-то вроде этого
$query = Usario::update([
‘Value_1’ => $data[‘value’],
])->fetchAll();
Также еще раз на мобильном телефоне, поэтому я попробовал, дайте мне знать, если вам нужна дополнительная помощь, и мы разберемся с этим утром