当前位置: 首页 > 面试题库 >

防止在php / mysql中插入重复的行

王锐
2023-03-14
问题内容

如何防止在php mysql中输入重复记录?在插入表之前验证输入。

我目前正在为我的网站建立一个用户注册部分,但是如果在数据库中发现重复的用户名或电子邮件地址,我想向他们显示一个错误。

编辑
这是我到目前为止要插入的行…我将如何在这里实现这两个答案:

  <?php
        if (array_key_exists('confirm',$_POST)) {

                $Cuser = $_POST['Cuser']; 
                $Cemail = $_POST['Cemail']; 
                $Cpassword = $_POST['Cpassword'];
                $md5password = md5($_POST['Cpassword']);

                mysql_query("INSERT INTO tbl_users (`username`,`email`,`password`)
VALUES ('$Cuser', '$Cemail', '$md5password')");

                echo "Thank you. The user <b>".$Cuser."&nbsp;(".$Cemail.")</b> has been successfully added to the database.<p>

                <a href='myaccount.php' class='form'>Return</a>";

                exit;
        }
        ?>

我猜我可以在if … else语句中实现所有功能吗?


问题答案:

我使用了sql语句以及if else语句。

mysql_select_db($database_speedycms, $speedycms);
$query_usercheck = "SELECT * FROM tbl_users WHERE username='$user' OR email='$email'";
$usercheck = mysql_query($query_usercheck, $speedycms) or die(mysql_error());
$row_usercheck = mysql_fetch_assoc($usercheck);
$totalRows_usercheck = mysql_num_rows($usercheck);

然后

if ( $totalRows_usercheck > 0 )

显示错误消息,以防止添加任何重复项

否则允许数据库插入



 类似资料:
  • 问题内容: 我想提出一种标准做法,以防止任何表在重要的地方重复。在大多数情况下,重复项是变量的组合而不是一个。我的主键只是每个字段的唯一ID,因此我无法使用它们。我一直在做的是先查询表,然后查询所要组合的行数是否为0,然后进行插入。但是,我已经读过,应该有可能在多个字段上设置唯一键以强制唯一性。INSERT IGNORE听起来很可能,但是,我需要在多个列上忽略它。 例如,对于字段关注者和关注对象,

  • 本文向大家介绍防止mysql重复插入记录的方法,包括了防止mysql重复插入记录的方法的使用技巧和注意事项,需要的朋友参考一下 防止mysql重复插入记录的方法有很多种,常用的是ignore,Replace,ON DUPLICATE KEY UPDATE,当然我们也可以在php中加以判断了。 方案一:使用ignore关键字 如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免

  • 问题内容: 使用MySQL 5.1.49,我正在尝试实现一个标记系统,我的问题是有两列的表:, (InnoDB) 使用query时,即使忽略了插入,自动增量值也会增加。 通常,这不会有问题,但是我希望有很多尝试为该特定表插入重复项,这意味着我下一个新行字段的值将跳得太多。 例如,我最终得到一个表,该表具有3行,但错误的是 另外,如果我不做而只是定期做并处理错误,则自动递增字段仍会增加,因此下一个真

  • 这是我的用户注册数据库的方式,但我的问题是:如何防止数据库具有相同用户名的副本,或者换句话说,如果用户名存在于数据库。

  • 问题内容: 这个问题已经在这里有了答案 : 如何防止PHP中进行SQL注入? (28个答案) 7年前关闭。 我已经建立了一个网站,该网站即将上线,并且有几个关于防止SQL注入的问题,我知道如何使用,但是我只是想知道是否必须在要获取的所有变量上使用它SQL语句,是否在执行select语句时还是在插入更新和删除时必须使用它?另外,在我将网站投入使用之前,您还建议我实施哪些其他安全措施,在此先感谢您的帮

  • 问题内容: 我有一个表,其中有列,列和许多其他列 我希望列支持Unicode的最大长度可以容纳700个Unicode字符。我无法设置,因为MYSQL仅对唯一列支持最大765字节的长度,而Unicode需要3个字节,因此我需要2100字节(700 * 3)唯一列。 因此,解决方案是创建一个触发器,以防止用户插入重复项。例如,如果用户在表中插入“ ”(我们将不区分大小写),则Mysql将完全中止包含该