RestAPI | Хелп плс :c

Dayken

— Добавлено —
Вот index.php

PHP:
  1. elseif($method === ‘PATCH’){
  2.     if($type === «posts»){
  3.         if(isset($id)){
  4.             $data = file_get_contents(‘php://input’);
  5.             $data = json_decode($data,true);
  6.             updatePost($data,$connect,$id);
  7.         }
  8.     }
  9. }

А это функция

PHP:
  1. function updatePost($connect, $id, $data){
  2.  
  3.     global $header, $announcement, $description, $theme, $date;
  4.  
  5.     mysqli_query($connect,«UPDATE `articles` SET `id`= ‘$id‘,`header`=’$header‘,`announcement`=’$announcement‘,`description`=’$description‘,`theme`=’$theme‘,`date`=’$date‘»);
  6.  
  7.     http_response_code(200);
  8.     $res = [
  9.         «status» => true,
  10.         «post_id» => «Post is updated»
  11.     ];
  12.     echo json_encode($res,JSON_UNESCAPED_UNICODE );
  13. }

Ругается на UPDATE запрос. Хз че ему не нравиться

 

ADSoft

ну так узнай, в чем дело то?

выведи запрос

PHP:
  1. echo «UPDATE `articles` SET `id`= ‘$id‘,`header`=’$header‘,`announcement`=’$announcement‘,`description`=’$description‘,`theme`=’$theme‘,`date`=’$date‘»;

наверняка какие-то перменныые пусты или не в том формате

ну и привет SQL иньекциям )))

 

Dayken

Ну когда я вывожу data[‘header’] которая равна $header’у. Мне выводиться заголовок..А в ошибке говорит пусто.Как так то

 

ADSoft

какая data[‘header’] … прочти внимательно что я советую — вывести запрос — который формируешь, и посмотреть все ли там нормально
там ошибки и не будет

 

Dayken

Да я понял,этим и занимаюсь.Просто ты меня не понял..я сделал как ты и сказал..и он говорит что они все пустые кроме id. А когда я выводил по отдельности их мне показывало что они заполнены как надо.Вот. В любом случае спасибо.Теперь хоть понимаю в чем дело.Пошел смотреть почему так)

 

Drunkenmunky

Код (Text):
  1. if (!mysqli_query($connect,»UPDATE `articles` SET `id`= ‘$id’,`header`=’$header’,`announcement`=’$announcement’,`description`=’$description’,`theme`=’$theme’,`date`=’$date'»))
  2. {
  3. printf(«Ошибка: %sn», mysqli_error($connect));
  4. }
 

ADSoft

ну дык потому как глобальные переменные — зло и надо избавляться от этого )))

 

miketomlin

Зло, если неправильно использовать. ТС явно попутал, что может передаваться через глоб. переменные и что должно передаваться через параметры ф-ции :)
— Добавлено —
Я вообще не понял, нафига он в $data что-то распаковывал, если в ф-ции пытается выудить значения полей из глоб. переменных. Эти глоб. переменные хоть определены или делаем незнамо что на ощупь? :eek:
— Добавлено —
И нафига PATCH, коли поля переписываем всем скопом? REST походу тоже не знаем. И нафига id переписывать? Хитрый патч типа реплэйса? :D

 

mkramer

Обычно там весьма конкретный мат, на нормальном английском языке. Надо читать. Сообщения об ошибках — наш главный помощник в работе. Хуже, когда их нету.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *