PHP では、SQL ステートメントを使用してデータベース内のデータを変更できます。具体的には、UPDATE ステートメントを使用して 1 つ以上のテーブルのデータを変更できます。
以下は基本的な例です:
$sql = "UPDATE users SET name='John' WHERE id=1"; mysqli_query($conn, $sql);
この例では、ID 1 を持つ「users」という名前のテーブル内の行を変更しています。行の名前フィールドを John に設定します。
どの行を変更するかを指定するために WHERE 句を使用することに注意してください。 WHERE 句を使用しない場合、テーブル内のすべての行が変更されます。
複数のフィールドを更新することもできます:
$sql = "UPDATE users SET name='John', email='john@example.com' WHERE id=1"; mysqli_query($conn, $sql);
次に、名前フィールドと電子メール フィールドの両方を新しい値に更新します。すべての行を更新したい場合は、以下に示すように WHERE 句を省略できます。
$sql = "UPDATE users SET name='John'"; mysqli_query($conn, $sql);
これにより、「users」テーブル内のすべての行の名前フィールドが変更されます。
PHP 変数を使用してクエリに値を設定することもできることは言及する価値があります:
$name = 'John'; $email = 'john@example.com'; $sql = "UPDATE users SET name='$name', email='$email' WHERE id=1"; mysqli_query($conn, $sql);
SQL インジェクション攻撃に注意する必要があります。これを防ぐには、準備されたステートメントを使用し、パラメーターをバインドする必要があります。以下に例を示します:
$name = 'John'; $email = 'john@example.com'; $id = 1; $stmt = $conn->prepare("UPDATE users SET name=?, email=? WHERE id=?"); $stmt->bind_param("ssi", $name, $email, $id); $stmt->execute();
この例では、準備されたステートメントを使用し、パラメーターをバインドします。これは、変数を文字列に直接配置するのではなく、クエリに変数を渡すことを意味します。そうすることで、SQL インジェクションのリスクを大幅に軽減できます。
つまり、PHP では、SQL ステートメントと準備されたステートメントを使用してデータベース内のデータを変更できます。アプリケーションをサイバー攻撃から保護するために、常にベスト プラクティスに従ってください。
以上がPHPでUPDATEステートメントを使用してデータベース内のデータを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。