检查MySQL数据库中是否存在电子邮件

时间:2014-02-26 15:24:25

标签: php mysql database

我使用以下PHP代码将数据存储在我的MySQL数据库中,一切都很完美,但我想建立一个检查;如果电子邮件已存在于数据库中,则重定向到另一个页面。 (谈到PHP,我是新手)

<?php

  if(empty($_POST['name']))
  {} else {

  define('DB_NAME', 'dbname');
  define('DB_USER', 'dbuser');
  define('DB_PASSWORD', 'dbpass');
  define('DB_HOST', 'host');

  $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

  if (!$link) { die('could not connect: ' . mysql_error()); }

    $db_selected = mysql_select_db(DB_NAME, $link);

  if (!$db_selected) { die('can not use ' . DB_NAME . ': ' . mysql_error()); }

  $sql="INSERT INTO game (name, lastname, company, email, time) VALUES
('".$_POST['name']."','".$_POST['lastname']."','".$_POST['company']."','".$_POST['email']."','".$_POST['time']."')";

  if (!mysql_query($sql)) { die('Error: ' . mysql_error()); }

  mysql_close();

  }

?>

3 个答案:

答案 0 :(得分:3)

if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
    exit('Invalid email address'); // Use your own error handling ;)
}
$select = mysqli_query($connectionID, "SELECT `email` FROM `game` WHERE `email` = '".$_POST['email']."'") or exit(mysqli_error($connectionID));
if(mysqli_num_rows($select)) {
    exit('This email is already being used');
}

坚持上面插入查询

答案 1 :(得分:0)

您可以使用 on Duplicate查询。

答案 2 :(得分:0)

首先,问你的问题。最简单的方法是使用header()函数重定向到页面。

if ( !$email) {
   header('Location: http://example.com/new_page.html' );
} else {
    // continue with code
}

其次,该代码中存在很多问题。例如:

  • 使用PDO
  • 参数化您的查询
  • 您的控制声明应该看起来像if(!empty($_POST['name'])) {
相关问题