php - 表格重复

标签 php mysql

我很难弄清楚如何在我的代码中编写 if 函数。我试图阻止我的 PHP 表单允许将重复项提交到我的 MySQL 数据库。我想阻止基于输入到我的表单中的电子邮件地址的提交。有人可以指导我正确的方向吗?谢谢。

<?php
  $dbc = mysqli_connect('n/a', 'n/a', 'n/a', 'n/a')
    or die('Error connecting to MySQL server.');

  $store_name = $_POST['storename'];
  $full_name = $_POST['fullname'];
  $address = $_POST['address'];
  $city = $_POST['city'];
  $state = $_POST['state'];
  $zip = $_POST['zip'];
  $phone = $_POST['phone'];
  $fax = $_POST['fax'];
  $email = $_POST['email'];
  $url = $_POST['url'];

  $query = "INSERT INTO store_location (store_name, full_name, address, city, state, zip,     phone, fax, email, url)  VALUES ('$store_name', '$full_name', '$address', '$city',     '$state', '$zip', '$phone', '$fax', '$email', '$url')";
  mysqli_query($dbc, $query)
or die('Error querying database.');

  echo 'New TeachPro store added.';
   echo '<br/><br/>';

  mysqli_close($dbc);
    ?>

最佳答案

您应该在数据库表的电子邮件列上使用唯一键。现在,如果您尝试两次插入相同的电子邮件地址,MySQL 会响应相应的错误消息。您可能会捕获这些错误消息并向用户显示有用的错误消息文本。

我使用这种方法来检查用户名:

try
{
    /** @var $userInsertUpdateStmt PDOStatement */

    $userInsertUpdateStmt->execute();
}
catch(PDOException $e)
{
    if($e->errorInfo[1] == 1062)
    {
        /* username already used */
        return User::ERR_USERNAME_ASSIGNED;
    }
    return User::ERR_SQL;
}

关于php - 表格重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13803963/

相关文章:

php - 无法从数据库检索图像

java - 从 Arraylist 创建字符串数组

php - 如何使用 PHP 和 MySQL 从数据库中过滤日期和日期

php - MySQL bool 全文搜索

php多关键字搜索

php - PHPUnit 6.5.5 和 PHP 7.2 的测试覆盖率

php - Laravel JWT Auth 获取用户登录

php - mysql 中的时间戳问题中的 CURRENT_TIMESTAMP

php - 使用 laravel voyager 管理面板部署 web 应用程序

php - 从两个不同的表计算价格+使用php和mysql