Проблема с обновлением ответа от реакции на php – mysqlPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Проблема с обновлением ответа от реакции на php – mysql

Сообщение Anonymous »

У меня проблема с обновлением базы данных MySQL. Он делает запрос и отправляет данные правильно, но ответ на запрос не обрабатывается, несмотря на то, что отправленные данные корректны в моем проекте React, React не может правильно прочитать ответ. Странно то, что это работает. идеально, когда я запрашиваю информацию и создаю ее с теми же данными.Вот моя функция модели PHP:

Код: Выделить всё

public function update($objeto)
{
try {
// Consulta SQL para actualizar especialidad

$vSQL = "UPDATE cita
SET
idCliente = '{$objeto->idCliente}',
fecha = '{$objeto->fecha}',
horaInicio = {$objeto->horaInicio},
horaFin = {$objeto->horaFin},
idEstado = {$objeto->idEstado},
idSubServicio = {$objeto->idSubServicio},
idMedico = {$objeto->idMedico},
idSucursal = {$objeto->idSucursal}
WHERE id = $objeto->id;";

// Ejecutar la consulta
$vResultado = $this->enlace->executeSQL_DML_last($vSQL);

// Retornar el especialidad actualizado
return $this->get($objeto->id);
} catch (Exception $e) {
die("" .  $e->getMessage());
}
}
Вот PHP-контроллер:

Код: Выделить всё

public function update()
{
// Obtener el JSON de la entrada estándar
$inputJSON = file_get_contents("php://input");

// Decodificar el JSON en un objeto
$object = json_decode($inputJSON);

// Verificar que el objeto se haya decodificado correctamente
if (!is_object($object)) {
http_response_code(400);
echo json_encode([
"status" => 400,
"result" => "Datos inválidos"
]);
return;
}
// Instanciar el modelo citaModel
$citaM = new citaModel();

// Llamar al método update del modelo para actualizar la cita en la base de datos
try {
$response = $citaM->update($object);

// Construir una respuesta JSON en base al resultado de la operación
if (isset($response) && !empty($response) && $response > 0) {
$json = [
"status" => 200,
"result" => "cita actualizada"
];
} else {
$json = [
"status" => 400,
"result" => "No se pudo actualizar la cita"
];
}
} catch (Exception $e) {
$json = [
"status" => 500,
"result" => "Error interno del servidor"
];
}

// Enviar la respuesta JSON
echo json_encode($json);
http_response_code($json["status"]);
}
А в React у меня есть сервис для подключения к API базы данных

Код: Выделить всё

import axios from 'axios';
const BASE_URL = import.meta.env.VITE_BASE_URL + 'cita';

class CitaService {

update(citaData) {
console.log('Datos de la cita para actualizar:', citaData);
return axios.put(BASE_URL, citaData);
}

}

export default new CitaService();

Это отправленные данные:

Код: Выделить всё

{
"fecha": "2024-11-16",
"horaFin": 1500,
"horaInicio": 1300,
"id": 6,
"idCliente": "159357852",
"idEstado": 1,
"idMedico": 1,
"idSubServicio": 10,
"idSucursal": 1
}
А вот как выглядит ответ PHP, но мой проект реагирования не может просмотреть ответ:

Код: Выделить всё



( ! ) Notice: Object of class stdClass could not be converted to int in C:\xampp\htdocs\API\controllers\CitaController.php on line [i]168[/i]
Call Stack
#TimeMemoryFunctionLocation
10.4135412072{main
}(  )...\index.php:[/b]0[b]20.4174792296RoutesController->index(  )...\index.php:[/b]48[b]30.4175803184include( 'C:\xampp\htdocs\API\routes\routes.php  )...\RoutesController.php:[/b]6[b]40.4175803504cita->update(  )...\routes.php:[/b]64

{
"status": 200,
"result": "cita actualizada"
}

Я уже пробовал разместить информацию непосредственно в Postman, и она обновляется правильно, проблема в том, что реакция не получает ответа.

Подробнее здесь: https://stackoverflow.com/questions/788 ... -php-mysql
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»