問題:
HTML フォームから MySQL データベースへの値の挿入は、正常に実行されず、データベースが残るempty.
解決策:
提供された PHP コードには、文字列変数として保存された SQL クエリが含まれています:
$sql = "INSERT INTO users (username, password, email) VALUES ('".$_POST["username"]."','".$_POST["password"]."','".$_POST["email"]."')";
ただし、このクエリは実行されませんでした。クエリを実行するには、プリペアド ステートメントなどの MySQL 関数を使用して、データのセキュリティと整合性を確保する必要があります。
ベスト プラクティス: プリペアド ステートメントの使用
プリペアド ステートメントクエリをユーザー入力から分離することで、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 サイトの他の関連記事を参照してください。