sql >> データベース >  >> RDS >> Mysql

これは、フォームデータをMySQLデータベースに挿入するための安全な方法ですか?

    提供した例では、最初に悪意のあるユーザー入力を分析せずに、投稿変数をデータベースに挿入します。 DBとの対話に使用する前に、型キャスト、エスケープ/フィルター関数、プリペアドステートメントなどを使用してください。

    一般的なルールは、ユーザー入力を絶対に信用しないことです。 EVER!

    チェックアウト:SQLインジェクションを停止する最良の方法PHPで

    あなたの質問に答えて、PDOプリペアドステートメントを使用してフォーム全体を処理する方法は次のとおりです。

    $stmt = $db->prepare('INSERT INTO Persons (FirstName, LastName, Age) VALUES (:first_name, :last_name, :age)');
    
    $stmt->execute(array(':first_name' => $first_name,':last_name' => $last_name, ':age' => $age));
    

    要求したようにレコードに1つの列を挿入するだけの場合、構文は次のようになります。

    $stmt = $db->prepare('INSERT INTO Persons (FirstName) VALUES (:first_name)');
    
    $stmt->execute(':first_name', $first_name);
    


    1. SQLステートメントのバックティックと角括弧の違いは何ですか?

    2. 起動時にMySQLがクラッシュする

    3. PHP / MySQLでAgeを毎日更新できるように、BirthdateとAgeを保存するにはどうすればよいですか?

    4. MySQLで非ASCII文字を見つけるにはどうすればよいですか?