你如何防止在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." (".$Cemail.")</b> has been successfully added to the database.<p>
<a href='myaccount.php' class='form'>Return</a>";
exit;
}
?>
Run Code Online (Sandbox Code Playgroud)
我猜我可以在if ... else语句中实现它吗?
OMG*_*ies 17
为用户名和电子邮件列定义唯一约束:
ALTER TABLE your_table ADD CONSTRAINT uk_username UNIQUE (username)
ALTER TABLE your_table ADD CONSTRAINT uk_email UNIQUE (email)
Run Code Online (Sandbox Code Playgroud)
如果表中已经存在试图插入或更新的值,MySQL将返回一个错误,指出查询违反了相应的唯一约束(可能两者).由您来设置PHP来优雅地处理这个问题.
我使用了 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);
Run Code Online (Sandbox Code Playgroud)
然后
if ( $totalRows_usercheck > 0 )
Run Code Online (Sandbox Code Playgroud)
显示错误消息以防止添加任何重复项
否则允许数据库插入
| 归档时间: |
|
| 查看次数: |
13026 次 |
| 最近记录: |