人気のあるプログラミング言語として、PHP はデータベース操作のための多くのツールとメソッドを提供します。その中で最も一般的に使用されるのは SQL (構造化照会言語) ステートメントです。 SQL はリレーショナル データベース (RDBMS) へのアクセスと管理に使用される言語であり、テーブル、行、列を操作することでデータを保存したり取得したりできます。 PHPでSQL文を使用する方法を紹介します。
SQL ステートメントを使用する前に、まずデータベースに接続する必要があります。これは、PHP の組み込み mysqli (MySQL Enhanced Extension) または PDO (PHP Data Objects) を使用して実現できます。
1.1 mysqli 接続メソッド:
$servername = "localhost"; //数据库主机名 $username = "username"; //数据库用户名 $password = "password"; //数据库密码 $dbname = "myDB"; //连接的数据库 // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); }
1.2 PDO 接続メソッド:
$servername = "localhost"; //数据库主机名 $username = "username"; //数据库用户名 $password = "password"; //数据库密码 $dbname = "myDB"; //连接的数据库 try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // 设置 PDO 错误模式为异常 $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "连接成功"; } catch(PDOException $e) { echo "连接失败: " . $e->getMessage(); }
#テーブル内のデータのクエリには多くの SQL ステートメントが使用されます。一般的な SQL ステートメントの一部を次に示します。
次に、mysqli と PDO を使用してデータをクエリする例を示します。
2.1 mysqli を使用してデータをクエリする:
$sql = "SELECT id, name, email FROM users"; $result = $conn->query($sql); if ($result->num_rows > 0) { // 输出数据 while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>"; } } else { echo "0 结果"; }
2.2 PDO を使用してデータをクエリする:
$sql = "SELECT id, name, email FROM users"; $stmt = $conn->prepare($sql); $stmt->execute(); $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); foreach($stmt->fetchAll() as $row) { echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>"; }
テーブルに新しいデータを挿入するときは、INSERT INTO ステートメントを使用します。新しいデータを挿入するための基本的な形式は次のとおりです:
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
次に、mysqli と PDO を使用したデータの挿入の例を示します:
3.1 mysqli を使用してデータを挿入:
$sql = "INSERT INTO users (name, email, password) VALUES ('John Doe', 'john@example.com', '123456')"; if ($conn->query($sql) === TRUE) { echo "新记录插入成功"; } else { echo "Error: " . $sql . "<br>" . $conn->error; }
3.2 PDO データを使用した挿入:
$sql = "INSERT INTO users (name, email, password) VALUES ('John Doe', 'john@example.com', '123456')"; $conn->exec($sql); echo "新记录插入成功";
データを更新するときは、UPDATE ステートメントを使用します。 UPDATE ステートメントの基本的な形式は次のとおりです。
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
以下は、mysqli と PDO を使用してデータを更新する例です。
4.1 mysqli を使用してデータを更新する:
$sql = "UPDATE users SET email='john_doe@example.com' WHERE id=1"; if ($conn->query($sql) === TRUE) { echo "记录更新成功"; } else { echo "Error: " . $sql . "<br>" . $conn->error; }
4.2 PDO を使用したデータの更新 :
$sql = "UPDATE users SET email='john_doe@example.com' WHERE id=1"; $conn->exec($sql); echo "记录更新成功";
データを削除するときは、DELETE ステートメントを使用します。 DELETE ステートメントの基本的な形式は次のとおりです。
DELETE FROM table_name WHERE condition;
以下は、mysqli と PDO を使用したデータ削除の例です。
5.1 mysqli を使用したデータの削除:
$sql = "DELETE FROM users WHERE id=1"; if ($conn->query($sql) === TRUE) { echo "记录删除成功"; } else { echo "Error: " . $sql . "<br>" . $conn->error; }
5.2 PDO を使用したデータの削除 :
$sql = "DELETE FROM users WHERE id=1"; $conn->exec($sql); echo "记录删除成功";
概要: PHP および SQL ステートメントを使用する場合は、SQL インジェクションを防ぐように注意する必要があります。SQL インジェクション攻撃を回避するには、mysqli のプリペアド ステートメントまたは PDO のプリペアド ステートメントを使用できます。ただし、mysqli または PDO を使用してデータベースを操作することで、データベースのセキュリティを確保できます。MySQL アプリケーションを作成する場合は、プログラムとデータベース間の負担を軽減するために、可能な限り PDO または mysqli を使用する必要があります。
以上がPHP で SQL ステートメントを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。