Web 開発において、データベースは非常に重要なコンポーネントです。スクリプト言語として、PHP はデータベースと対話するコードを記述するのに最適です。 PHP は、ネイティブ MySQL 関数、PDO、高レベルの ORM フレームワークなど、データベースを操作するためのさまざまな方法を提供します。この記事では、PHP でデータベースを操作する方法を説明します。
MySQL は、人気のあるリレーショナル データベース管理システムであり、PHP で最もよく使用されるデータベースの 1 つです。 PHP は、MySQL データベースへの接続、データのクエリ、データの挿入、データの変更、およびデータの削除に使用できる一連のネイティブ MySQL 関数を提供します。以下は、ローカル MySQL データベースに接続し、users テーブル内のすべてのデータをクエリするための基本的なサンプル コードです。
<?php // 连接 MySQL 数据库 $link = mysqli_connect("localhost", "username", "password", "database_name"); // 检查连接是否成功 if ($link === false) { die("Error: Could not connect. " . mysqli_connect_error()); } // 查询 users 表中的所有数据 $sql = "SELECT * FROM users"; if ($result = mysqli_query($link, $sql)) { // 打印结果 if (mysqli_num_rows($result) > 0) { while ($row = mysqli_fetch_array($result)) { echo $row['id'] . " " . $row['name'] . " " . $row['email']; echo "<br>"; } // 释放结果集资源 mysqli_free_result($result); } else { echo "No records found."; } } else { echo "Error: Could not able to execute $sql. " . mysqli_error($link); } // 关闭连接 mysqli_close($link); ?>
上記のコードでは、まず mysqli_connect() 関数を使用して MySQL データベースに接続します。次に、mysqli_query() 関数を使用して SQL ステートメントを実行し、結果セットを返し、users テーブル内のすべてのデータをクエリします。最後に、mysqli_fetch_array() 関数を使用してクエリ結果を行ごとに取得し、ページに出力します。 mysqli_free_result() 関数を使用して結果セットのリソースを解放し、mysqli_close() 関数を使用して接続を閉じます。
PDO は、さまざまなデータベースをサポートし、よりシンプルで効率的なデータベース操作を提供する PHP の軽量データベース抽象化レイヤーです。 PDO を使用すると、コードを変更することなく、単一のコード ベースを使用して複数の種類のデータベースを操作できます。以下は、ローカルの MySQL データベースに接続し、users テーブル内のすべてのデータをクエリする基本的なサンプル コードです:
<?php // 连接 MySQL 数据库 $dsn = "mysql:host=localhost;dbname=database_name"; $username = "username"; $password = "password"; // 创建 PDO 实例 try { $pdo = new PDO($dsn, $username, $password); } catch (PDOException $e) { die("Error: Could not connect. " . $e->getMessage()); } // 查询 users 表中的所有数据 $sql = "SELECT * FROM users"; if ($result = $pdo->query($sql)) { // 打印结果 if ($result->rowCount() > 0) { while ($row = $result->fetch()) { echo $row['id'] . " " . $row['name'] . " " . $row['email']; echo "<br>"; } } else { echo "No records found."; } } else { echo "Error: Could not able to execute $sql. " . $pdo->errorInfo(); } // 关闭连接 $pdo = null; ?>
上記のコードでは、最初に $dsn、$username、$ を使用して PDO インスタンスを作成します。パスワード MySQL データベースに接続します。次に、$pdo->query() 関数を使用して SQL ステートメントを実行し、結果セットを返し、users テーブル内のすべてのデータをクエリします。最後に、$result->fetch() 関数を使用してクエリ結果を行ごとにフェッチし、ページに出力します。 $pdo = null; ステートメントを使用して接続を閉じます。
ORM (オブジェクト リレーショナル マッピング、オブジェクト リレーショナル マッピング) は、オブジェクトとリレーショナル データベース間のマッピングを確立するために使用されるソフトウェア フレームワークです。 ORM フレームワークは、アプリケーションの開発と保守をより迅速に行うのに役立つ高レベルのライブラリです。 PHP では、Laravel の Eloquent、Symfony の Doctrine、Yii2 の ActiveRecord など、複数の ORM フレームワークから選択できます。以下は、Eloquent ORM を使用してローカル MySQL データベースに接続し、users テーブル内のすべてのデータをクエリする基本的なサンプル コードです。
<?php // 引入 Eloquent ORM 类 require_once "vendor/autoload.php"; use IlluminateDatabaseCapsuleManager as Capsule; // 创建 Eloquent ORM 实例 $capsule = new Capsule; // 配置数据库连接信息 $capsule->addConnection([ "driver" => "mysql", "host" => "localhost", "database" => "database_name", "username" => "username", "password" => "password", ]); // 启动 Eloquent ORM $capsule->bootEloquent(); // 查询 users 表中的所有数据 $users = Capsule::table("users")->get(); // 打印结果 if (count($users) > 0) { foreach ($users as $user) { echo $user->id . " " . $user->name . " " . $user->email; echo "<br>"; } } else { echo "No records found."; } ?>
上記のコードでは、まず Composer を使用して Eloquent ORM をインストールし、対応するクラス。次に、Capsule インスタンスを作成し、データベース接続情報を追加します。 $capsule->bootEloquent() 関数を使用して Eloquent ORM を開始します。最後に、Capsule::table() 関数を使用して users テーブル内のすべてのデータをクエリし、foreach ループを使用してそれをページに行ごとに出力します。
結論
PHP でデータベースを操作する場合、多くのオプションがあります。ネイティブ MySQL 関数を使用して MySQL データベースに簡単に接続できますが、コードの量は比較的煩雑です。 PDO を使用すると、さまざまなタイプのデータベースに接続でき、いくつかの効率的な操作方法が提供されます。 ORM フレームワークを使用すると、コード開発が大幅に簡素化され、安定性と保守性が向上します。プロジェクトの特定のニーズに基づいて、最も適切な方法を選択する必要があります。
以上がPHPでデータベースを操作するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。