ホームページ  >  記事  >  バックエンド開発  >  PHPはデータベースクエリステートメントを実行します

PHPはデータベースクエリステートメントを実行します

WBOY
WBOYオリジナル
2023-05-06 18:08:08791ブラウズ

PHP は、豊富なデータベース操作 API が組み込まれた非常に人気のあるサーバーサイド プログラミング言語です。開発者にとって、PHP を上手に使ってデータベースを操作できることは非常に重要なスキルです。この記事では、PHP でデータベース クエリ ステートメントを実行する方法に焦点を当てます。

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

PHP でデータベースに接続するには、通常、Mysqli または PDO が使用されます。以下は、mysqli を使用して MySQL データベースに接続するためのサンプル コードです:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);

// 检查连接是否成功
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

2. クエリ ステートメントを実行します

データベースに正常に接続したら、SQL クエリ ステートメントの実行を開始できます。 。以下は、mysqli を使用してクエリ ステートメントを実行するためのサンプル コードです。

<?php
$sql = "SELECT id, name, email FROM users";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    // 输出数据
    while($row = mysqli_fetch_assoc($result)) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 results";
}

mysqli_close($conn);
?>

上記のコードでは、SELECT ステートメントを使用してデータベースからデータを読み取り、mysqli_fetch_assoc() を通じてデータを連想配列に保存します。関数。最後に、クエリ結果は while ループのトラバーサルを通じて出力されます。

3. SQL インジェクション攻撃の防止

データベース クエリ ステートメントを実行するときは、SQL インジェクション攻撃に特別な注意を払う必要があります。保護策が講じられていない場合、悪意のあるユーザーが悪意のある SQL ステートメントをつなぎ合わせて、データの改ざんや削除などの不正な操作を実行する可能性があります。したがって、実際の開発では、SQL インジェクション攻撃を避けるために、準備されたステートメントを使用して SQL ステートメントをプリコンパイルする必要があります。以下は、mysqli プリペアド ステートメントを使用してクエリ ステートメントを実行するサンプル コードです。

<?php
$stmt = $conn->prepare("SELECT id, name, email FROM users WHERE email= ? ");
$email = "john@example.com";
$stmt->bind_param("s", $email);
$stmt->execute();

$result = $stmt->get_result();
if ($result->num_rows > 0) {
    // 输出数据
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 results";
}

$stmt->close();
$conn->close();
?>

上記のコードでは、最初に prepare() 関数を使用して SQL ステートメントをプリコンパイルし、クエリ条件を SQL と結合します。 bind_param() メソッドを介してステートメントをバインドします。最後に、get_result() 関数を使用してクエリ結果を取得し、fetch_assoc() メソッドを使用してデータを取得します。

概要

この記事では、mysqli と PDO を使用して PHP でデータベースに接続し、クエリ ステートメントを実行して SQL インジェクション攻撃を防ぐ方法を紹介しました。これらのスキルを学び習得することで、PHP開発においてデータベースをより上手に操作できるようになり、開発効率やセキュリティが向上します。

以上がPHPはデータベースクエリステートメントを実行しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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