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 サイトの他の関連記事を参照してください。