PHP でのデータベース クエリ操作に PDO を使用する方法

PHPz
リリース: 2023-04-12 10:53:34
オリジナル
1119 人が閲覧しました

PHP PDO は、複数の異なるデータベースに接続できるインターフェイスです。 PHP アプリケーションでは、PHP コードを MySQL、PostgreSQL、Oracle などのデータベース システムに接続できます。この記事では、クエリ操作に PDO を使用する方法を紹介します。

  1. データベースへの接続

PDO を使用してデータベースにクエリを実行する前に、まず接続を確立する必要があります。以下は、MySQL データベースに接続するためのサンプル コードです。

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully";
} catch(PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}
?>
ログイン後にコピー

このコードは、ローカル MySQL データベースに接続し、接続の成功または失敗に関する情報を要求します。この例を通して、PDO が例外処理を通じて接続エラーを処理することがわかります。

  1. 単一行のデータのクエリ

次に、PDO を使用して単一行のデータをクエリする方法を紹介します。以下は、単一行のデータをクエリするためのサンプル コードです。

<?php
$stmt = $conn->prepare("SELECT * FROM customers WHERE id = :id");
$stmt->bindParam(':id', $id);

$id = 1;
$stmt->execute();

$result = $stmt->fetch(PDO::FETCH_ASSOC);

echo "id: " . $result['id'] . "<br>";
echo "name: " . $result['name'] . "<br>";
echo "email: " . $result['email'] . "<br>";
?>
ログイン後にコピー

このコードは、データベース内のデータ行をクエリし、結果を出力します。まず、PDO::prepare() メソッドを使用してクエリ ステートメントを準備し、次に、bindParam() メソッドを使用してクエリ パラメータをプレースホルダーにバインドし、次に、execute() メソッドを使用してクエリを実行し、最後にfetch() メソッドでクエリ結果を取得します。

  1. 複数行データのクエリ

PDO は、複数行データのクエリもサポートしています。以下は、複数行のデータをクエリするためのサンプル コードです。

<?php
$stmt = $conn->prepare("SELECT * FROM customers");
$stmt->execute();

$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach($result as $row) {
    echo "id: " . $row['id'] . "<br>";
    echo "name: " . $row['name'] . "<br>";
    echo "email: " . $row['email'] . "<br>";
    echo "<hr>";
}
?>
ログイン後にコピー

このコードは、 fetchAll() メソッドを使用してデータベース内の複数行のデータをクエリし、ループでデータの各行を出力します。 fetchAll() メソッドは 2 次元配列を返し、foreach を使用してデータの各行を走査できます。

  1. データをクエリしてページに表示する

Web アプリケーションでは、通常、クエリ結果をページ化する必要があります。以下は、データをクエリしてページに表示するサンプル コードです。

<?php
$records_per_page = 10;
$page = isset($_GET[&#39;page&#39;]) ? $_GET[&#39;page&#39;] : 1;

$stmt = $conn->prepare("SELECT * FROM customers LIMIT :offset, :records_per_page");
$stmt->bindParam(':offset', ($page - 1) * $records_per_page, PDO::PARAM_INT);
$stmt->bindParam(':records_per_page', $records_per_page, PDO::PARAM_INT);

$stmt->execute();

$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach($result as $row) {
    echo "id: " . $row['id'] . "<br>";
    echo "name: " . $row['name'] . "<br>";
    echo "email: " . $row['email'] . "<br>";
    echo "<hr>";
}

$stmt = $conn->prepare("SELECT COUNT(*) FROM customers");
$stmt->execute();

$total_records = $stmt->fetchColumn();
$total_pages = ceil($total_records / $records_per_page);

echo "<div>";
for($i = 1; $i <= $total_pages; $i++) {
    echo "<a href=&#39;?page=$i&#39;>$i</a> ";
}
echo "</div>";
?>
ログイン後にコピー

このコードでは、最初にレコード番号とページ番号の変数を定義し、次にそれらをクエリ ステートメントに追加します。ループでは、データの各行を出力します。次に、レコードの合計数をクエリし、合計ページ数を計算します。最後に、ページ分割されたリンクを出力します。

結論

上記は、PDO を使用して PHP でデータベースにクエリを実行する例のいくつかです。これらのコードは、PHP アプリケーションで PDO クエリ ステートメントを正しく使用するのに役立ちます。

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

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