ホームページ >バックエンド開発 >PHPの問題 >PHPがMySQLデータベースを操作する方法の詳細な説明

PHPがMySQLデータベースを操作する方法の詳細な説明

PHPz
PHPzオリジナル
2023-04-19 10:06:11799ブラウズ

2 つの MySQL データ テーブルにクエリを実行し、PHP でそれらを計算することは一般的な要件です。この記事では、PHP を使用して MySQL に接続し、データ テーブルのクエリ、テーブル間のクエリ、およびデータの計算を行う方法を紹介します。

  1. MySQL への接続

PHP で MySQL に接続するには、mysqli または PDO 拡張機能を使用する必要があります。ここでは mysqli 拡張機能を使用します。サンプル コードは次のとおりです:

<?php
$host = "localhost";
$username = "root";
$password = "";
$dbname = "test";

$conn = mysqli_connect($host, $username, $password, $dbname);

if(!$conn){
    die("Connection failed: " . mysqli_connect_error());
}
  1. データ テーブルのクエリ

データ テーブルをクエリするには、SELECT ステートメントを使用する必要があります。まず、クエリする列とデータ テーブルを選択する必要があります。

$sql = "SELECT id, name, age FROM users";
$result = mysqli_query($conn, $sql);

if(mysqli_num_rows($result) > 0){
    while($row = mysqli_fetch_assoc($result)){
        echo "ID: " . $row["id"]. " - Name: " . $row["name"]. " - Age: " . $row["age"]. "<br>";
    }
}else{
    echo "0 results";
}

この例では、users データ テーブルの id、name、age 列をクエリし、これらの列の値を出力します。

  1. クロステーブル クエリ

クロステーブル クエリでは、JOIN ステートメントを使用する必要があります。ユーザーと注文という 2 つのデータ テーブルがあり、ユーザーの注文数量をクエリする必要があるとします。

まず、LEFT JOIN キーワードを使用して 2 つのデータ テーブルを接続する必要があります:

$sql = "SELECT users.id, users.name, count(orders.id) as orders_count FROM users LEFT JOIN orders ON users.id = orders.user_id GROUP BY users.id, users.name";
$result = mysqli_query($conn, $sql);

この例では、LEFT JOIN キーワードを使用して users とorders データ テーブルを接続します。そして、ON 句の user_id 列を使用して 2 つのデータ テーブルを結合します。

次に、GROUP BY 句を使用してユーザーの ID と名前でグループ化し、COUNT 関数を使用してユーザーの注文の数量を計算します。

  1. データの計算

データを計算するには SQL 関数が必要です。ここでは、よく使われる SQL 関数をいくつか紹介します。

SUM 関数は、指定された列の合計を計算できます:

SELECT SUM(price) FROM orders;

AVG 関数は、指定された列の平均を計算できます:

SELECT AVG(price) FROM orders;

COUNT 関数は、指定された列の平均を計算できます。指定された列の行数:

SELECT COUNT(*) FROM orders;

MAX 関数は、指定された列の最大値を選択できます:

SELECT MAX(price) FROM orders;

MIN 関数は、指定された列の最小値を選択できます:

SELECT MIN(price) FROM orders;
  1. 完全な例

さて、上記をまとめて完全な例を構築しましょう:

<?php
$host = "localhost";
$username = "root";
$password = "";
$dbname = "test";

$conn = mysqli_connect($host, $username, $password, $dbname);

if(!$conn){
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "SELECT users.id, users.name, count(orders.id) as orders_count FROM users LEFT JOIN orders ON users.id = orders.user_id GROUP BY users.id, users.name";
$result = mysqli_query($conn, $sql);

if(mysqli_num_rows($result) > 0){
    while($row = mysqli_fetch_assoc($result)){
        echo "ID: " . $row["id"]. " - Name: " . $row["name"]. " - Orders count: " . $row["orders_count"]. "
";     } }else{     echo "0 results"; } mysqli_close($conn); ?>

この完全な例では、まず MySQL に接続し、次に、LEFT JOIN キーワードを使用してユーザーと注文のデータ テーブルをクエリし、各ユーザーの注文数量を計算します。

最後に、mysqli_close 関数を使用して MySQL 接続を閉じます。

概要

2 つの MySQL データ テーブルをクエリして PHP で計算するには、mysqli または PDO 拡張機能を使用して MySQL に接続し、SELECT ステートメントと JOIN ステートメントを使用してデータ テーブルをクエリし、 SUM、AVG、COUNT、MAX および MIN 関数はデータを計算します。

クエリ ステートメントを作成する前に、クエリ対象の列とデータ テーブルの関係を明確に理解し、複雑なクエリ ステートメントの使用をできるだけ避ける必要があることに注意してください。同時に、SQL インジェクション攻撃を避けるために、mysqli_real_escape_string 関数を使用してユーザー入力をフィルタリングする必要があります。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。