PHP で SQL ステートメントを使用する方法

王林
リリース: 2023-05-20 16:54:01
オリジナル
2775 人が閲覧しました

人気のあるプログラミング言語として、PHP はデータベース操作のための多くのツールとメソッドを提供します。その中で最も一般的に使用されるのは SQL (構造化照会言語) ステートメントです。 SQL はリレーショナル データベース (RDBMS) へのアクセスと管理に使用される言語であり、テーブル、行、列を操作することでデータを保存したり取得したりできます。 PHPでSQL文を使用する方法を紹介します。

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

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();
}
ログイン後にコピー
  1. データのクエリ

#テーブル内のデータのクエリには多くの SQL ステートメントが使用されます。一般的な SQL ステートメントの一部を次に示します。

  • SELECT: テーブルからデータを選択するために使用されます。
  • WHERE: 条件とその条件を満たすレコードを指定するために使用されます。
  • ORDER BY: 特定の条件に従ってクエリ結果を並べ替えるのに使用されます。
  • GROUP BY: 通常、クエリ結果をグループ化して概要データを計算するために、集計関数 (SUM、AVG、COUNT など) とともに使用されます。

次に、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>";
}
ログイン後にコピー
  1. データの挿入

テーブルに新しいデータを挿入するときは、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 "新记录插入成功";
ログイン後にコピー
  1. データの更新

データを更新するときは、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 "记录更新成功";
ログイン後にコピー
  1. データの削除

データを削除するときは、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 サイトの他の関連記事を参照してください。

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