PHP 入門: PDO データベース

WBOY
WBOYオリジナル
2023-05-20 17:42:06952ブラウズ

PHP は非常に人気のあるサーバーサイド プログラミング言語であり、その柔軟性と使いやすさにより、Web 開発に推奨される言語の 1 つとなっています。 Web アプリケーション開発では、データベースと対話するプロセスが非常に重要です。PDO (PHP Data Object) は、MySQL、PostgreSQL、Oracle などのさまざまなリレーショナル データベースと対話するための共通インターフェイスを提供する PHP の拡張ライブラリです。この記事では、初心者向けにPDOを使ってデータベースを操作する方法を紹介します。

  1. PDO 拡張機能のインストール

PDO を使用する前に、PHP に PDO 拡張機能がインストールされているかどうかを確認する必要があります。 phpinfo() 関数を使用して、PHP 拡張機能のリストを表示できます。拡張子リストに PDO 拡張子がない場合は、php.ini ファイルで extension=pdo.so および extension=pdo_mysql.so を設定し、Web サーバーを再起動して PDO 拡張子を有効にする必要があります。

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

PDO を使用してデータベースに接続すると、データベースに関する関連情報を入力するだけで非常に便利です。以下は、MySQL データベースに接続するためのサンプル コードです。

$dbname = "test";
$host = "localhost";
$user = "root";
$pass = "password";

$dsn = "mysql:host=" . $host . ";dbname=" . $dbname;
$options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
                PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");

try {
    $pdo = new PDO($dsn, $user, $pass, $options);
} catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}

上記のコードでは、データベース名、ホスト、ユーザー名、パスワードなどのデータベースの関連情報が最初に設定されます。次に、DSN (データ ソース名) を使用してデータベース情報を PDO に転送します。オプション配列には 3 つのオプションが設定されています:

  • ATTR_ERRMODE。これは PDO エラー処理モードを表し、例外を使用してエラー メッセージをスローします。
  • ATTR_DEFAULT_FETCH_MODE は、結果セットの取得方法を示します。デフォルトは連想配列です。
  • MYSQL_ATTR_INIT_COMMAND は、SQL コマンドを初期化し、文字セットを utf8 に設定することを意味します。

try-catch ブロックは、データベースへの接続時に例外をキャプチャし、エラー情報を出力します。

  1. SQL ステートメントの実行

データベースに正常に接続したら、SQL ステートメントを実行してデータ操作を実行できます。 PDO は、3 つの主要な PDO ステートメント オブジェクトを提供します:

  • PDO::query()。SQL クエリ ステートメントを実行し、結果セットを返します。 SELECT ステートメントに適用されます。
  • PDO::prepare()、SQL ステートメントを準備します。 SELECT、UPDATE、INSERT、DELETE およびその他のステートメントに適用されます。
  • PDO::exec() は、SQL ステートメントを実行し、影響を受ける行の数を返します。 UPDATE、INSERT、DELETE およびその他のステートメントに適用されます。

以下は、PDO::query() を使用してレコードをクエリし、出力するサンプル コードです。

$sql = "SELECT * FROM user";
try {
    $stmt = $pdo->query($sql);
    while ($row = $stmt->fetch()) {
        echo "Name: " . $row['name'] . "<br>";
        echo "Age: " . $row['age'] . "<br>";
    }
} catch (PDOException $e) {
    echo "Query failed: " . $e->getMessage();
}

上記のコードでは、最初にクエリを実行する SQL クエリ ステートメントが定義されています。のユーザーテーブルレコード。次に、query() メソッドを使用して SQL ステートメントを実行すると、$stmt 変数はクエリ結果を含む PDOStatement オブジェクトを返します。次に、 fetch() メソッドを使用して結果セットを走査し、各行に記録された名前と年齢を出力します。クエリの実行中にエラーが発生した場合、try-catch ブロックが例外をキャッチし、エラー メッセージを出力します。

以下は、PDO::prepare() を使用してレコードを挿入するためのサンプル コードです。

$sql = "INSERT INTO user(name, age) VALUES(:name, :age)";
try {
    $stmt = $pdo->prepare($sql);
    $stmt->bindParam(':name', $name);
    $stmt->bindParam(':age', $age);

    $name = "Alice";
    $age = 30;
    $stmt->execute();

    echo "Record inserted successfully.";
} catch (PDOException $e) {
    echo "Insert failed: " . $e->getMessage();
}

上記のコードでは、最初にユーザー テーブルにレコードを挿入する SQL 挿入ステートメントが定義されています。 。 prepare() メソッドを使用して SQL ステートメントを前処理すると、$stmt 変数は準備されたステートメントを含む PDOStatement オブジェクトを返します。次に、bindParam() メソッドを使用して、プレースホルダーを実際のパラメーターにバインドします。次にパラメータ値を設定し、最後にexecute()メソッドを使用してSQL文を実行します。挿入の実行中にエラーが発生した場合、try-catch ブロックが例外をキャッチし、エラー メッセージを出力します。

  1. データベース接続を閉じる

データベース接続が必要なくなったら、リソースを解放するために適時にデータベース接続を閉じる必要があります。 PDO::null() メソッドを使用して閉じることができます。次に例を示します。

$pdo = null;

上記は、データベース操作に PDO を使用する簡単な例です。 PDO を使用すると便利なだけでなく、移植性と安全性にも優れています。この記事で説明する方法を学ぶことで、すぐに PDO を使用して独自の Web アプリケーション開発を開始できるようになります。

以上がPHP 入門: PDO データベースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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