ホームページ  >  記事  >  バックエンド開発  >  PHP がデータベースをどのように操作するかの簡単な分析

PHP がデータベースをどのように操作するかの簡単な分析

PHPz
PHPzオリジナル
2023-03-24 14:54:331978ブラウズ

データベースはネットワーク プログラミングの重要な部分であり、大量のデータを保存および管理するために使用されます。ネットワークアプリケーションでは、ユーザー情報や製品情報などのデータ情報を保存・管理する必要があるため、Webサイト開発にはデータベースの運用が欠かせません。広く使用されているバックエンド サーバー プログラミング言語として、PHP は一連のデータベース操作機能も提供しており、データベースを簡単に追加、削除、変更できます。

この記事では、SQL ステートメント、PDO クラス、MySQLi クラスなど、PHP で一般的に使用されるデータベースの追加、削除、変更操作を簡単に紹介します。この記事での紹介が、開発者が PHP でのデータベースの操作をよりよく理解するのに役立つことを願っています。

1. SQL ステートメント

SQL ステートメントはデータベースの一般的なクエリ言語であり、ステートメントを通じてデータベースを操作して追加、削除、変更を完了するために使用されます。データの確認、チェックなどの操作を行います。 PHP の SQL ステートメントを通じてデータベースを操作するには、mysql_query() 関数、mysqli_query() 関数、および PDO 前処理ステートメントを使用できます。

1.mysql_query() 関数

mysql_query() 関数は、PHP で SQL ステートメントを実行するために使用される関数です。この関数を使用するには、MySQL データに接続し、この関数を通じて SQL ステートメントを渡してデータを操作する必要があります。たとえば、INSERT コマンドを使用してデータを挿入します。

<?php
$con = mysql_connect("localhost","root","password");
mysql_select_db("my_db", $con);
mysql_query("INSERT INTO Persons (FirstName, LastName, Age) 
VALUES (&#39;Peter&#39;, &#39;Griffin&#39;, &#39;35&#39;)");
mysql_close($con);
?>

2.mysqli_query() 関数

mysqli_query() 関数は、パラメーター バインディングを持つ SQL ステートメント用の PHP の関数です。 mysql_query() 関数とは異なり、mysqli_query() 関数はパラメータ バインディングを持つ SQL ステートメントをサポートします。たとえば、INSERT コマンドを使用したデータの挿入は次のように記述できます。

<?php
$mysqli = new mysqli("localhost", "root", "password", "my_db");
$stmt = $mysqli->prepare("INSERT INTO Persons (FirstName, LastName, Age) VALUES (?, ?, ?)");
$stmt->bind_param("ssi", $fname, $lname, $age);
$fname = "Peter";
$lname = "Griffin";
$age = 35;
$stmt->execute();
$stmt->close();
$mysqli->close();
?>

3.PDO プリペアド ステートメント

PDO (PHP Data Objects) は、アクセスおよび操作に使用できる PHP 拡張機能です。 MySQL、Oracle、SQL Server などのさまざまなタイプのデータベース。 PDO プリペアド ステートメントを使用すると、渡されたパラメーターに基づいて SQL ステートメントを実行できます。たとえば、データを挿入するには、INSERT コマンドを使用します。

<?php
$pdo = new PDO("mysql:host=localhost;port=3306;dbname=my_db", "root", "password");
$statement = $pdo->prepare("INSERT INTO Persons (FirstName, LastName, Age) VALUES (:fname, :lname, :age)");
$statement->bindParam(':fname', $fname);
$statement->bindParam(':lname', $lname);
$statement->bindParam(':age', $age);
$fname = "Peter";
$lname = "Griffin";
$age = 35;
$statement->execute();
$pdo = null;
?>

2. PDO クラス

PDO クラスは、データベースと対話するために使用される PHP のパッケージです。 PDO クラスを通じてデータベースに接続するには、prepare() メソッドを使用して準備済みステートメントを作成し、SQL ステートメントにパラメーターを追加して、SQL ステートメントとデータをexecute() メソッドに提供します。 PDO クラスは、トランザクションを開いて送信するための beginTransaction() や commit() などのメソッドも提供します。

<?php
$pdo = new PDO("mysql:host=localhost;port=3306;dbname=my_db", "root", "password");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->beginTransaction();
try {
    $statement = $pdo->prepare("INSERT INTO Persons (FirstName, LastName, Age) VALUES (?, ?, ?)");
    $statement->bindParam(1, $fname);
    $statement->bindParam(2, $lname);
    $statement->bindParam(3, $age);
    $fname = "Peter";
    $lname = "Griffin";
    $age = 35;
    $statement->execute();
    $pdo->commit();
}
catch(PDOException $e) {
    $pdo->rollback();
    echo "Error: " . $e->getMessage();
}
$pdo = null;
?>

3. MySQLi クラス

MySQLi クラスは、PHP で MySQL を使用するための拡張ライブラリです。提供される関数は、mysql_* 関数よりも強力で安全です。トランザクションやストアド プロシージャなどの新しい MySQL サーバー機能をサポートします。 MySQLi クラスを使用するには、new キーワードを使用して mysqli クラスのインスタンスを作成し、connect() メソッドを呼び出して MySQL サーバーに接続する必要があります。

<?php
$mysqli = new mysqli("localhost", "root", "password", "my_db");
$mysqli->query("INSERT INTO Persons (FirstName, LastName, Age) VALUES ('Peter', 'Griffin', '35')");
$mysqli->close();
?>

概要

この記事では主に、SQL ステートメント、PDO クラス、MySQLi クラスなど、PHP での一般的なデータベースの追加、削除、変更操作を紹介します。この記事の導入を通じて、さまざまな操作方法とその長所と短所について学び、セキュリティにおけるパラメータ バインディングの役割にも注意することができます。もちろん、実際の開発においても、ユーザーのニーズを最大限に活かすために、プロジェクトのニーズに応じて最適なデータベースの運用方法を用いる必要があります。

以上がPHP がデータベースをどのように操作するかの簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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