Хочу сделать REST API. У меня не получается написать функцию UPDATE. Пытаюсь повторить как в
гайде , но ничего не получается. Можете помочь? Я полный новичок.
Мне нужно менять значение device_mode на 0 и 1, когда будет отправляться POST запрос ({{url}}/api/ch_mode?id=1&device_mode=0)
--
-- Структура таблицы `devices`
--
CREATE TABLE `devices` (
`id` int(11) NOT NULL,
`device_name` varchar(50) CHARACTER SET latin1 NOT NULL,
`device_dep` varchar(20) CHARACTER SET latin1 NOT NULL,
`device_uid` text CHARACTER SET latin1 NOT NULL,
`device_date` date NOT NULL,
`device_mode` tinyint(1) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
--
-- Дамп данных таблицы `devices`
--
INSERT INTO `devices` (`id`, `device_name`, `device_dep`, `device_uid`, `device_date`, `device_mode`) VALUES
(1, 'es32', 'Department', 'fte26cf2e68d6055', '2022-09-22', 1);
-- --------------------------------------------------------
Api.php
Маршрутизация запроса (работает).
router('/api/ch_mode', 'POST', function () {
update_item();
});
Update.php
function update_item(){
include_once 'api/db.php';
include_once 'api/users.php';
$database = new Database();
$db = $database->getConnection();
$item = new User($db);
// $device_mode = mysql_escape_string($_POST['device_mode']);
// $id = mysql_escape_string($_POST['id']);
$item->id = isset($_GET['id']) ? $_GET['id'] : die();
$item->name = $_GET['device_mode'];
$item-> $id = $_POST['id'];
$item->$device_mode = $_POST['device_mode'];
if($item->updateDevMode()){
echo json_encode("updated.");
} else{
echo json_encode("not updated");
}
Users.php
public function updateDevMode(){
$this->device_mode=htmlspecialchars(strip_tags($this->device_mode));
$this->id=htmlspecialchars(strip_tags($this->id));
// $sqlQuery = "UPDATE ". $this->devices_dep ." SET device_mode = '$device_mode''".$this->device_mode."', WHERE id = ='$id'".$this->id;
$sqlQuery = "UPDATE". $this->devices_dep ." SET device_mode='?' WHERE id ='?'";
if($this->db->affected_rows > 0){
return true;
}
return false;
}