現在の位置: ホーム> 最新記事一覧> json_encode()を使用して、mysqli_resultをjson形式に変換します

json_encode()を使用して、mysqli_resultをjson形式に変換します

M66 2025-05-28

PHPでは、多くの場合、データベースからデータを取得し、フロントエンドにAPIインターフェイスを提供するなど、JSON形式で返す必要があります。これを行うには、 MySQLI拡張機能を使用してクエリを実行し、 json_Encode()関数を使用して結果配列をJSON文字列にエンコードできます。

この記事では、このプロセスを段階的に実装する方法について説明します。

1.データベース接続を確立します

まず、 MySQLIを使用してデータベースへの接続を作成する必要があります。

 $servername = "localhost";
$username = "db_user";
$password = "db_password";
$database = "db_name";

$conn = new mysqli($servername, $username, $password, $database);

// 接続が成功しているかどうかを確認してください
if ($conn->connect_error) {
    die("接続に失敗しました: " . $conn->connect_error);
}

2。クエリを実行します

すべてのユーザーデータを取得するための例として、ユーザーという名前のテーブルをクエリしてみましょう。

 $sql = "SELECT id, username, email FROM users";
$result = $conn->query($sql);

ここでは、 $ resultmysqli_resultオブジェクトで、クエリの結果が含まれています。

3。クエリの結果を配列に変換します

json_encode()はmysqli_resultオブジェクトを直接エンコードできないため、最初に配列に変換する必要があります。

 $data = array();

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $data[] = $row;
    }
}

ここでは、fetch_assoc()メソッドを使用して、データの各行を連想配列として取り出し、 $データアレイに追加します。

4。JSON_ENCODE()を使用してJSONに変換します

すべてのクエリ結果を含む配列$データができたので、 json_encode()を使用してjson形式に変換できます。

 $jsonResult = json_encode($data);

// 出力 JSON データ
header('Content-Type: application/json');
echo $jsonResult;

ここでは、コンテンツタイプのヘッダーをApplication/JSONに設定して、JSON形式が返されたことをクライアントに伝えます。

5。サンプルコードを完了します

上記の手順を組み合わせて、完全なコードは次のとおりです。

 <?php
$servername = "localhost";
$username = "db_user";
$password = "db_password";
$database = "db_name";

$conn = new mysqli($servername, $username, $password, $database);

if ($conn->connect_error) {
    die("接続に失敗しました: " . $conn->connect_error);
}

$sql = "SELECT id, username, email FROM users";
$result = $conn->query($sql);

$data = array();

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $data[] = $row;
    }
}

$conn->close();

header('Content-Type: application/json');
echo json_encode($data);
?>

ヒント

  • データベース接続情報(ユーザー名、パスワード、データベース名など)が正しいことを確認してください。

  • 実際のプロジェクトでは、セキュリティとパフォーマンスのために、直接スプライシングSQLの代わりに準備されたステートメントを使用することをお勧めします。

  • インターフェイスをテストする場合は、ブラウザでインターフェイスにアクセスできます。たとえば、次のようにアクセスできます。
    https://m66.net/api/get_users.php

これにより、ブラウザまたはフロントエンドコードでJSONユーザーデータを直接取得できます。