ホームページ  >  記事  >  データベース  >  私のフォーム値が MySQL データベースに挿入されないのはなぜですか?

私のフォーム値が MySQL データベースに挿入されないのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-11 18:32:02428ブラウズ

Why are my form values not being inserted into my MySQL database?

PHP: フォームから MySQL への値の挿入

フォームから MySQL データベースへの値の挿入は、Web 開発の一般的なタスクです。 PHP では、mysqli 拡張機能を使用してデータベースに接続し、クエリを実行できます。

ただし、値がデータベースに挿入されないという問題に直面している場合は、次の点を考慮することが重要です。

宣言されているが実行されていないクエリ:

$sql = "INSERT INTO users (username, password, email)
VALUES ('".$_POST["username"]."','".$_POST["password"]."','".$_POST["email"]."')";

このコードMySQL クエリを含む文字列変数のみを宣言します。クエリを実行するには、mysqli_query などの関数を使用するか、mysqli_prepare、mysqli_bind_param、mysqli_execute を使用してステートメントを準備する必要があります。

SQL インジェクションの脆弱性:

ユーザー入力を追加しないクエリに直接アクセスできます。ユーザーが入力を操作してデータベースに損害を与える SQL インジェクション攻撃につながる可能性があります。代わりに、準備されたステートメントを使用して、この脆弱性から保護してください。

準備されたステートメントの例:

$sql = "INSERT INTO users (username, password, email)
VALUES (?,?,?)";

$stmt = $mysqli->prepare($sql);
$stmt->bind_param("sss", $_POST['username'], $_POST['email'], $_POST['password']);
$stmt->execute();

セキュリティに関する考慮事項:

  • パスワードを平文で保存しないでください。パスワードのハッシュを保存するには、password_hash を使用します。

ユーザー入力は常に注意して扱う必要があり、脆弱性を防ぐために準備されたステートメントなどのセキュリティ対策を実装する必要があることに注意してください。

以上が私のフォーム値が MySQL データベースに挿入されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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