ホームページ  >  に質問  >  本文

PHP API が動作を停止し、json を返さなくなったのはなぜですか?

数年前、私はいくつかのモバイルアプリ用にバックエンド (json データを取得するための PHP) を作成しました。それ以来、このコードには触れていません。今では数週間前に機能しなくなりました。私はバックエンド開発者ではないので、ここでの経験はあまりありませんが、数年前、Firebase/Serverless を使用する代わりに独自のバックエンドを作成したほうが良いのではないかと考えました...これは私の最善のアイデアではありませんでした。 )

私が試したこと:

リーリー

これは私の php ファイルです:

リーリー

誰かが私が間違っていること/何を変更できるかを説明してもらえますか?

P粉447785031P粉447785031331日前586

全員に返信(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

    編集: あなたのアップデートを拝見しました。申し訳ありませんが、さらに疑問が生じました。言い換えると、 $db->getHighestRatingWith31Results(); は何をするのでしょうか?関数 saveResultOfQueryToArray() は 1 つのパラメーターを受け入れますが、使用方法は関数に 2 つのパラメーターを提供することです。 saveResultOfQueryToArray は mysqli_fetch_array() を呼び出していますが、これには mysqli_result インスタンスが必要です。

    これは私の提案です:

    • mysqli の代わりに PDO を使用します。これは古いコードだとおっしゃっていましたが、PDO は素晴らしいです。 https://www.php.net/manual/en/class.pdo および https://phpdelusions.net/pdo
    • $response をグローバル変数として設定することはおそらくないでしょう。 saveResultOfQueryToArray() から $response を返すか、参照渡しを検討します。 https://www.php.net/manual/en/ language. References.pass.php
    • もう一度、HTTP 応答コードを調べることをお勧めします。
    • 最後に、これが難しいことは承知していますが、変数にわかりやすい名前を付け、コメントを付けてコードを文書化します。コンピューター サイエンスには古いジョークがあります。「コンピューター サイエンスで最も難しい 2 つの部分は、キャッシュの無効化、名前の付け、および 1 つずつのエラーです。」 「ドキュメントは未来の自分へのラブレターです。」 - ダミアン・コンウェイ

    返事
    0
  • キャンセル返事