찾다

 >  Q&A  >  본문

PHP API가 작동을 멈추고 더 이상 json을 반환하지 않는 이유는 무엇입니까?

몇 년 전 저는 일부 모바일 앱을 위한 백엔드(JSON 데이터를 얻기 위한 PHP)를 만들었습니다. 그 이후로는 이 코드를 건드리지 않았습니다. 이제 몇 주 전에 작동이 중단되었습니다. 저는 백엔드 개발자가 아니기 때문에 여기에 대한 경험이 많지 않습니다. 하지만 몇 년 전에는 Firebase/Serverless를 사용하는 대신 자체 백엔드를 만드는 것이 더 낫다고 생각했습니다. 이는 최선의 아이디어가 아니었습니다. )

내가 시도한 것:

으아악

이것은 내 PHP 파일입니다:

으아악

내가 뭘 잘못하고 있는지/무엇을 바꿀 수 있는지 설명해 줄 수 있나요?

P粉447785031P粉447785031333일 전589

모든 응답(1)나는 대답할 것이다

  • P粉821231319

    P粉8212313192023-12-17 09:11:42

    외모 if($_SERVER['REQUEST_METHOD'] == 'GET') 没有 $response。除非代码中有更多内容,否则 $response 정의되지 않음.

    으아악

    이런 것이 도움이 될 것입니다! 또한 HTTP 405와 같은 HTTP 응답을 살펴보는 것이 좋습니다. https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405

    EDIT: 귀하의 업데이트를 확인했고 죄송하지만 더 많은 질문이 제기됩니다. 즉, $db->getHighestRatingWith31Results(); 是做什么的?函数 saveResultOfQueryToArray()는 하나의 매개변수를 받아들이는데 함수에 두 개의 매개변수를 제공하는 용도라는 뜻인가요? saveResultOfQueryToArray가 mysqli_result 인스턴스가 필요한 mysqli_fetch_array()를 호출하고 있습니다.

    제 제안은 다음과 같습니다.

    • mysqli 대신 PDO를 사용하세요. 당신이 이것이 오래된 코드라고 말한 것을 알고 있지만 PDO는 굉장합니다. https://www.php.net/manual/en/class.pdohttps://phpdelusions.net/pdo
    • 저는 아마도 $response를 전역 변수로 설정하지 않을 것입니다. saveResultOfQueryToArray()에서 $response를 반환하거나 참조로 전달하는 것을 고려해 보겠습니다. https://www.php.net/manual/en/언어. reference.pass.php
    • 다시 한 번 HTTP 응답 코드를 살펴보는 것이 좋습니다.
    • 마지막으로, 이것이 어렵다는 것은 알지만, 변수 이름을 좀 더 이해하기 쉬운 이름으로 지정하고 주석으로 코드를 문서화하세요. 컴퓨터 과학에는 오래된 농담이 있습니다. "컴퓨터 과학에서 가장 어려운 두 가지 부분은 캐시 무효화, 이름 지정 및 하나씩 오류입니다." “문서는 미래의 자신에게 보내는 연애편지입니다.” - Damien Conway

    회신하다
    0
  • 취소회신하다