【发布时间】:2016-10-26 06:16:16
【问题描述】:
一切都在我的代码中运行,但是如果您要创建一个用户,即使您使用相同的电子邮件创建多个用户,它也会接受我已经尝试搜索一些解决方案并将其放入我的代码中,但我仍然无法制作它工作,我怎样才能使 SQLSTATE[23000]:完整性约束违规:1062 更改为“错误电子邮件已存在”?有可能吗?
addform.php
如果有重复,我还想显示一条错误消息
<style type="text/css">
#dis{
display:none;
}
</style>
<div id="dis">
<!-- here message will be displayed -->
</div>
<form method='post' id='emp-SaveForm' action="#">
<table class='table table-bordered'>
<tr>
<td>First Name</td>
<td><input type='text' name='fname' class='form-control' required /></td>
</tr>
<tr>
<td>Last Name</td>
<td><input type='text' name='lname' class='form-control' required></td>
</tr>
<tr>
<td>Contact Number</td>
<td><input type='number' name='contactnum' class='form-control' required></td>
</tr>
<tr>
<td>Email</td>
<td><input type='email' name='email' class='form-control' required /></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name='pass' class='form-control' required /></td>
</tr>
<tr>
<td>Language</td>
<td><input type='text' name='lang' class='form-control' required /></td>
</tr>
<tr>
<td colspan="2">
<button type="submit" class="btn btn-primary" name="btn-save" id="btn-save">
<span class="glyphicon glyphicon-plus"></span> Save this User
</button>
</td>
</tr>
</table>
创建.php
<?php
require_once 'dbconfig.php';
if($_POST)
{
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$contactnum = $_POST['contactnum'];
$email = $_POST['email'];
$pass = $_POST['pass'];
$lang = $_POST['lang'];
try{
$stmt = $db_con->prepare("INSERT INTO tbluser(fname,lname,contactnum,email,pass,lang) VALUES(:ufname,:ulname,:ucontact,:uemail,:upass,:ulang)");
$stmt->bindParam(":ufname", $fname);
$stmt->bindParam(":ulname", $lname);
$stmt->bindParam(":ucontact", $contactnum);
$stmt->bindParam(":uemail", $email);
$stmt->bindParam(":upass", $pass);
$stmt->bindParam(":ulang", $lang);
if($stmt->execute())
{
echo "Successfully Added";
}
else{
echo "Query Problem";
}
}
catch(PDOException $e){
echo $e->getMessage();
}
}
?>
我只是 php 的新手 我在数据库中使用 PDO 不知道它是否是一件好事感谢您的帮助,请让我知道我是否可以使用或只是复制粘贴您的代码:)
【问题讨论】:
-
pdo 是个好东西
-
PDO 绝对是个好东西。您缺少的可能是唯一索引
-
如上所述,那么您很可能在电子邮件字段上也缺少唯一索引 - 如果您尝试在电子邮件字段上插入重复值,则使用唯一索引会自动出错唯一索引。检查重复的一种方法是在插入之前搜索要插入的电子邮件
SELECT -
谢谢你已经按照你说的做了,我收到错误消息 SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'joe@yahoo.com' for key 'email' 我可以更改错误消息可能只是“错误添加已使用的新用户电子邮件”?怎么样?