所有字段都经过验证后,将数据插入到数据库中 - PHP

时间:2012-09-06 11:54:56

标签: php mysql validation

我想知道你是否可以帮助我。我使用PHP将数据从html表单传递到MySQL数据库。所有字段都已经过验证,但我希望它在任何数据进入数据库之前验证所有数据。

例如,如果在“名称”字段中输入的字符不足,则会告诉用户,但是如果电子邮件地址被正确验证,则会将数据插入到数据库中。我该怎么做呢?

    // check the length of 'name' field if between 2 and 50 characters

    if ((strlen($name) < 2 || strlen($name) > 50)) {
        echo "The name is invalid, must be between 2 and 50 chearacters.";
        exit;

    }

    echo "</br>";

    // check field name contains numbers
    if (preg_match('#[0-9]#',$name)){ 

        echo 'The name is invalid, its contains numbers. Please go back and try again.';
    }  

    echo "</br>";

    // Check if email is valid. If not tell the user it is invalid

    $regex = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/'; 
    if (!preg_match($regex, $emailaddress)) {
            echo "Invalid email address. Please go back and try again.";
    }

  // insert the data from the registration form into the DB  
  mysql_query("INSERT into customers 
      (cs_name, cs_emailaddress) 
      VALUES
  (
  '".$name."', '".$emailaddress."',
  )
  ")
  or die(mysql_error()); 

2 个答案:

答案 0 :(得分:1)

在调用mysql_query()之前使脚本死掉,或者最初创建一个$ isValid变量,当出现错误时将其设置为false。你在mysql_query之前加了一个条件:

if ($isValid === true)
{
    mysql_query(...
}

答案 1 :(得分:-1)

您可以尝试使用jquery字段验证。在jquery中有一个函数valid(),您可以使用它来确保您的字段是否全部有效。

如果valid()返回true,则执行mysql操作。你可以使用ajax调用它。