ホームページ > バックエンド開発 > PHPの問題 > PHPで配列をデータベースに保存する方法

PHPで配列をデータベースに保存する方法

PHPz
リリース: 2023-04-23 13:45:12
オリジナル
1489 人が閲覧しました

PHP を Web 開発に使用する場合、通常、後で使用するために一部のデータをデータベースに保存する必要があります。最も一般的に使用されるデータ型は配列です。

次に、配列をデータベースに保存する方法を見てみましょう。

  1. データベースの準備

まず、配列データを保存するテーブルを作成する必要があります。 MySQL を例に挙げると、次の手順があります。

1) test などのデータベースを作成します。

2) データベースの下にテーブル (array_data など) を作成し、配列データを保存します。次の SQL ステートメントを使用できます。

CREATE TABLE `array_data` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `data` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
ログイン後にコピー

このテーブルには、iddata という 2 つのフィールドが含まれています。このうち、id はデータを一意に識別するために使用される主キーであり、data フィールドは、保存する配列データを保存するために使用されます。

  1. 配列を文字列に変換する

配列をデータベースに保存する前に、配列を文字列に変換する必要があります。データベースには文字列型のデータしか格納できないためです。配列を文字列に変換するには、PHP が提供する serialize() 関数を使用できます。

たとえば、次の配列データがあります:

$data = [
    'name' => 'Tom',
    'age' => 25,
    'gender' => 'male'
];
ログイン後にコピー

serialize() 関数を使用して、これを文字列に変換できます:

$data_str = serialize($data);
ログイン後にコピー

現時点での $data_str の値は次のとおりです:

a:3:{s:4:"name";s:3:"Tom";s:3:"age";i:25;s:6:"gender";s:4:"male";}
ログイン後にコピー
  1. データをデータベースに書き込みます

文字列を保存するのは非常に簡単ですデータベース内で。 PHP の PDO 拡張機能を使用してデータベースに接続し、準備されたステートメントを使用してデータベースにデータを書き込むことができます。

具体的なコードは次のとおりです:

try {
    $dsn = "mysql:host=localhost;dbname=test;charset=utf8mb4";
    $username = "root";
    $password = "";

    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $data = [
        'name' => 'Tom',
        'age' => 25,
        'gender' => 'male'
    ];
    $data_str = serialize($data);

    $stmt = $pdo->prepare("INSERT INTO array_data (data) VALUES (?)");
    $stmt->bindParam(1, $data_str);
    $stmt->execute();
} catch (PDOException $e) {
    echo $e->getMessage();
}
ログイン後にコピー

上記のコードでは、最初に PDO オブジェクトを作成し、次に prepare() 関数を使用して準備済みのオブジェクトを作成します。声明。このうち、? は現在位置にパラメータが必要であることを意味し、格納する文字列をパラメータとして渡します。最後に、execute() 関数を使用して、準備されたステートメントを実行します。

  1. データベースからの配列データの読み取り

データベース内の配列データを読み取る必要がある場合は、まずデータベースから保存されている文字列を読み取り、次に使用します。 unserialize() 関数を使用して配列に変換します。

具体的なコードは次のとおりです。

try {
    $dsn = "mysql:host=localhost;dbname=test;charset=utf8mb4";
    $username = "root";
    $password = "";

    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $stmt = $pdo->query("SELECT data FROM array_data WHERE id = 1");
    $data_str = $stmt->fetchColumn();

    $data = unserialize($data_str);

    print_r($data);
} catch (PDOException $e) {
    echo $e->getMessage();
}
ログイン後にコピー

上記のコードでは、query() 関数を使用して SQL ステートメントと fetchColumn( ) 関数 結果セットからデータの最初の列を取得します。これは、配列データを保持する文字列です。次に、unserialize() 関数を使用して配列型に変換します。

最後に、print_r() 関数を使用して配列データを出力します。

概要

PHP プログラムでは、通常、配列をデータベースに保存する手順は次の手順に分かれます。

  1. データベースを準備し、テキスト タイプのフィールド テーブルを作成する。
  2. 配列を文字列に変換します。
  3. 文字列をデータベースに保存します。
  4. データベースから文字列を読み取り、unserialize() 関数を使用して配列に変換します。

以上がPHPで配列をデータベースに保存する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート