Web 開発では、結合テーブル クエリは一般的な操作です。 PHP 言語では、複数のテーブル間の結合を使用してクエリを実装できます。より複雑なクエリ操作の場合、取得するデータが比較的複雑な場合、通常は 3 次元配列を使用してデータを保存できます。この記事では、PHPを使用してジョイントテーブルクエリを実行する方法と3次元配列を取得する方法を紹介します。
1. ジョイントテーブルクエリとは何ですか?
結合テーブル クエリとは、クエリ内で同時に複数のテーブルを使用する操作を指します。テーブルに特定のフィールド情報が不足している場合、または複数のテーブルから一部の情報を取得する必要がある場合は、結合テーブル クエリを使用する必要があります。
結合テーブル クエリを実行するときは、JOIN キーワードを使用して複数のテーブルを接続する必要があります。接続キーワードには、LEFT JOIN、RIGHT JOIN、INNER JOIN、FULL OUTER JOIN などが含まれます。ニーズに応じて選択してください。通常は INNER JOIN を使用することでニーズを満たすことができます。
2. PHP を使用して結合テーブル クエリを実行するにはどうすればよいですか?
PHP では、データベース操作に PDO (PHP Data Objects) を使用できます。以下は、INNER JOIN キーワードを使用して 2 つのテーブルに対して結合クエリを実行する簡単な例です。
$servername = "localhost";
$username = "ユーザー名";
$password = "パスワード";
$dbname = "myDBPDO";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO: :ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID";
foreach ($conn->query($sql) as $row) {
print $row['OrderID'] . "\t"; print $row['CustomerName'] . "\t"; print $row['OrderDate'] . "\n";
}
} catch(PDOException $e) {
echo "エラー: " 。 $e->getMessage();
}
$conn = null;
?>
上記のコードでは、最初にデータベースに接続します。次に、INNER JOIN キーワードを使用して Orders テーブルと Customers テーブルに対して結合クエリを実行し、foreach ループを使用してクエリ結果を走査しました。
ご覧のとおり、SELECT ステートメントを使用してクエリ対象のフィールドを指定し、INNER JOIN キーワードを使用して 2 つのテーブルを接続しました。次のループでは、print を使用してクエリ結果を出力します。
3. 3 次元配列を取得するにはどうすればよいですか?
取得する必要のあるデータが比較的複雑な場合は、結合テーブル クエリが完了した後、クエリ結果を 3 次元配列に変換して保存する必要があります。以下はこれを基に修正したサンプルコードです。
$servername = "localhost";
$username = "ユーザー名";
$password = "パスワード";
$dbname = "myDBPDO";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO: :ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID";
$result = $conn->query($sql)->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_ASSOC);
$output = array();
foreach ($result as $key=>$val) {
$output[] = array("OrderID"=>$key, "OrderDetail"=>$val);
}
print_r($output);
} catch(PDOException $e) {
echo "エラー: " . $e->getMessage();
}
$conn = null;
?>
上記のコードでは、PDO::FETCH_GROUP と PDO を使用しました。 ::FETCH_ASSOC 2 つの定数を使用して、グループ化された連想配列を取得します。次に、結果をループで 3 次元配列に変換し、最後に print_r 関数を使用して配列を出力します。
4. 概要
Web 開発では、結合テーブル クエリは非常に一般的な操作です。 INNER JOIN キーワードを使用すると、クエリのために複数のテーブルを簡単に結合できます。データが複雑な場合は、3 次元配列を使用して、後続の処理のためにクエリ結果を保存できます。データベース操作に PDO を使用する場合は、セキュリティに注意し、例外を処理する必要があります。
以上がPHPでテーブルクエリを結合して3次元配列を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。