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

オプションおよび必須フィールドを含むフォームの投稿

    nameフィールドがあるとしましょう 、emailnote 最初の2つは必須で、最後の2つは不要です。

    これを行う1つの方法は次のとおりです。

    <?php
    $error = array();
    if (!isset($_POST['name']))
    {
        $error[] = "The field name was not filled!";
    }
    
    if (!isset($_POST['email']))
    {
        $error[] = "The field email was not filled!";
    }
    
    if (sizeof($error) == 0)
    {
        // insert the data
        $query = sprintf("INSERT INTO users VALUES ('%s', '%s', '%s')",
                         mysql_real_escape_string($_POST['name']),
                         mysql_real_escape_string($_POST['email']),
                         mysql_real_escape_string((isset($_POST['note']) ? $_POST['note'] : '')));
    
        $result = do_query($query);
        echo "<p>¡El laboratorio ha sido añadido exitosamente!</p>";
    }
    else
    {
        // print the error
        foreach ($error as $msg)
        {
            echo $msg, "<br>\n";
        }
    }
    

    note 三項演算子を使用しました:

    isset($_POST['note']) ? $_POST['note'] : ''
    

    これは本質的にワンライナーif/elseであり、次のように書くことができます:

    if (isset($_POST['note']))
    {
        $note = $_POST['note'];
    }
    else
    {
        $note = '';
    }
    

    また、mysql_real_escape_stringを使用して、ケース内のデータをサニタイズするようにしてください。 SQLインジェクションを防ぐため。



    1. SQLAlchemyの`create_engine`で`charset`と`encoding`を使用する方法(パンダデータフレームを作成するため)?

    2. mysqlのグループに従って自動インクリメントIDを追加する方法

    3. C#、MySQL-コマンド実行中に致命的なエラーが発生しました-他の解決策を確認しました、私が見逃しているもの

    4. SQLiteの日付/時刻関数の有効な時間文字列形式