Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Đăng biểu mẫu với các trường tùy chọn và bắt buộc

Giả sử tôi có các trường name , email , note trong đó 2 cái đầu tiên là bắt buộc và cái cuối cùng thì không.

Đây là một cách để làm điều đó:

<?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";
    }
}

Đối với note Tôi đã sử dụng toán tử bậc ba:

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

Về cơ bản, nó là một chữ lót if / else, có thể được viết là:

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

Ngoài ra, hãy đảm bảo rằng bạn làm sạch dữ liệu trong trường hợp của mình bằng cách sử dụng mysql_real_escape_string để ngăn chặn SQL Injection.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để viết câu lệnh SQL này?

  2. MySQL callback - có điều gì như vậy không?

  3. Nối các hàng dưới dạng mảng từ một bảng khác cho mỗi hàng

  4. Đặt (lại) id tăng tự động MySQL bắt đầu từ 1

  5. IF ... ELSE trong mệnh đề WHERE trong MySQL