PHP は、さまざまなデータ型とデータベースを統合できる人気のあるサーバー側スクリプト言語です。特に Web アプリケーションの開発では、データの取得や操作のためにデータベースにアクセスすることが必要になることがよくあります。この記事では、PHP データベースのクエリ ステートメントに焦点を当てます。
1. データベース クエリ ステートメントとは
データベースを運用する過程で、データベースからデータを取得する必要があることがよくあります。このとき、クエリステートメントを使用する必要があります。データベース クエリ (SQL クエリ) は、データベースからデータを取得するための一連の命令です。 SQL は Structured Query Language の略で、データベースにアクセスして操作するためにリレーショナル データ管理システム (RDBMS) で広く使用されている言語です。
PHP では、さまざまな機能を使用してさまざまなタイプのデータベースにアクセスできます。 PHP は MySQL、PostgreSQL、Oracle などのデータベースをサポートしており、各データベースのクエリ文は若干異なりますが、基本的には SQL 言語を使用して実装されます。
2. クエリ ステートメントの構造
単純なクエリ ステートメントには通常、SELECT、FROM、WHERE の 3 つの部分が含まれます。 SELECTには取得する列を指定し、FROMにはテーブル名を指定し、WHERE句には検索条件を指定します。
以下は基本的なクエリ ステートメントの構造です:
SELECT カラム 1、カラム 2、...
FROM テーブル
WHERE 条件;
カラムは必要なものを示します。取得する列名。複数の列名はカンマで区切ります。通常、すべての列を選択することを示すには、列名の代わりに * (アスタリスク) が使用されます。
table は操作するテーブルの名前を示します。
condition は、レコードを取得するための条件と制限を指定し、論理演算子 (AND、OR など) を使用して接続するオプションのオプションです。
たとえば、次の例では、ユーザー名と電子メール フィールドが「admin」、パスワード フィールドが「123」である「users」テーブルのレコードを取得します。
SELECT username, email,パスワード
FROM ユーザー
WHERE ユーザー名 = 'admin' AND パスワード = '123';
ただし、より複雑なクエリ要件の場合は、SELECT、FROM、および WHERE だけを使用すると、次のことができない場合があります。この場合、JOIN ステートメントやサブクエリなどの高度なクエリ ステートメントを使用する必要があります。これについては後の章で説明します。
3. クエリ結果の処理
クエリ ステートメントによって返される結果は通常、複数の行を含むテーブルであり、各行は対応するレコードを表します。 PHP アプリケーション開発者にとって、テーブル エントリは配列であり、各セルの内容は配列内の要素です。クエリ結果の処理には 3 つの部分が含まれます。
- データベース クエリを実行し、結果セットを取得します。
PHP で mysqli_query と PDO::query を使用してクエリ ステートメントを実行し、結果セットを返します。例:
$query = "SELECT ユーザー名、電子メール、パスワード FROM ユーザー WHERE ユーザー名 = 'admin' AND パスワード = '123'";
$result = mysqli_query($connection, $query);
- 結果セットを処理します。
mysqli_fetch_assoc、PDO::fetch、およびその他の関数を使用して、結果セットからデータを抽出します。例:
while ($row = mysqli_fetch_assoc($result)) {
echo "username: " . $row["username"] . " email: " . $row["email"] . " password: " . $row["password"];
}
- 結果セットを解放します。
PHP では、結果セットの使用を終了したら、リソースの無駄を避けるために、mysqli_free_result または PDOStatement::closeCursor 関数を使用して結果セットを解放する必要があります。例:
mysqli_free_result($result);
4. 高度なクエリ テクノロジ
- JOIN
JOIN ステートメントは、以下を組み合わせることができます。 2 つまたは複数のテーブルを結合して、新しい大きなテーブルを作成します。一般的な JOIN ステートメントには、内部結合、外部結合 (左結合と右結合)、自己結合などが含まれます。
Inner JOIN: 2 つのテーブルの条件を満たすレコードのみが返されます。つまり、2 つのテーブルを結合する場合、両方のテーブルの同じ値のみが取得されます。
例:
SELECTorders.OrderID、customers.CustomerName、orders.OrderDate
FROMorders
INNER JOINcustomers
ONorders.CustomerID=customers.CustomerID;
このクエリは、customers テーブル (customers) に関連付けられている、orders テーブル (orders) 内のすべての注文を返します。内部結合の記号は JOIN または INNER JOIN で、ON キーワードは主キーを指定します。リンクに使用される /foreign キー。キーの条件。
- サブクエリ
サブクエリとは、別の SQL ステートメントに SQL クエリを埋め込むことを指します。通常、サブクエリはメイン クエリの結果セットを制限するために使用されます。サブクエリは複数のクエリ内でネストできます。これはネストされたクエリと呼ばれます。
例:
SELECT AVG(DISTINCT Price) FROM Products
WHERE ProductName IN (SELECT ProductName FROM Orders WHERE CustomerID=1);
このクエリは次の値を返します。 ID 顧客 1 が注文したすべての製品の平均価格は、実際には、サブクエリ リストを使用して顧客 1 が購入したすべての製品をクエリし、AVG 関数を外部に配置して平均を計算します。
- UNION
UNION ステートメントは、2 つ以上の SELECT ステートメントの結果セットを結合します (結果は同じフィールドを持つ必要があるため、結果の宣言にエイリアスが使用される場合があります)。 、結果セットから重複した行を削除します。 UNION ステートメントの形式は次のとおりです。
SELECT 列名 FROM table1
UNION
SELECT 列名 FROM テーブル 2;
例:
SELECT ProductName FROM Products
UNION
SELECT ProductName FROM Suppliers
ORDER BY ProductName;
このクエリは、サプライヤー (Suppliers) および製品 (Products ) を含むすべての製品名を返します。クエリ結果を照会し、重複を削除し、名前で並べ替えます。
概要
この記事は、クエリ ステートメントの構造とクエリ結果の処理方法、および JOIN、サブクエリなどの一般的に使用される高度なクエリ テクノロジに焦点を当てて、PHP データベース クエリ ステートメントを紹介することを目的としています。そしてUNIONステートメント。これらの高度なクエリ テクノロジを適切に使用すると、データベースから必要なデータをより効率的に取得できます。
以上がPHP データベースのクエリ ステートメントに焦点を当てるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、酸とベースのデータベースモデルを比較し、その特性と適切なユースケースを詳述しています。酸は、財務およびeコマースアプリケーションに適したデータの整合性と一貫性を優先し、ベースは可用性に焦点を当て、

この記事では、コードインジェクションのような脆弱性を防ぐために、PHPファイルのアップロードを確保することについて説明します。ファイルタイプの検証、セキュアストレージ、およびアプリケーションセキュリティを強化するエラー処理に焦点を当てています。

記事では、組み込み関数、ホワイトリストアプローチ、サーバー側の検証などの手法に焦点を当てたセキュリティを強化するためのPHP入力検証のベストプラクティスについて説明します。

この記事では、Token BucketやLeaky BucketなどのアルゴリズムやSymfony/Rate-Limiterなどのライブラリを使用するなど、PHPでAPIレート制限を実装するための戦略について説明します。また、監視、動的に調整されたレートの制限、および手をカバーします

この記事では、パスワードを保護するためにPHPでpassword_hashとpassword_verifyを使用することの利点について説明します。主な議論は、これらの関数が自動塩の生成、強力なハッシュアルゴリズム、およびSecurを通じてパスワード保護を強化するということです

この記事では、PHPおよび緩和戦略におけるOWASPトップ10の脆弱性について説明します。重要な問題には、PHPアプリケーションを監視および保護するための推奨ツールを備えたインジェクション、認証の壊れ、XSSが含まれます。

この記事では、PHPでのXSS攻撃を防ぐための戦略について説明し、入力の消毒、出力エンコード、セキュリティを向上させるライブラリとフレームワークの使用に焦点を当てています。

この記事では、PHPでのインターフェイスと抽象クラスの使用について説明し、それぞれをいつ使用するかに焦点を当てています。インターフェイスは、無関係なクラスや複数の継承に適した、実装なしで契約を定義します。抽象クラスは共通の機能を提供します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

メモ帳++7.3.1
使いやすく無料のコードエディター

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
