Все работает в моем коде, однако, если вы собираетесь создать пользователя, он будет принят, даже если вы создадите несколько пользователей с одинаковым адресом электронной почты. Я уже пытался найти какое-то решение и поместить его в мой код, но все же я не могу заставить его работать и как я могу заставить SQLSTATE [23000]: нарушение ограничений целостности: 1062 изменить на «сообщение об ошибке уже существует»? Является ли это возможным?Как обращаться с 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>
create.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();
}
}
?>
Я просто new in php Я использую PDO в базе данных, не знаю, хорошо ли это, спасибо за помощь и помощь ase дайте мне знать, могу ли я использовать или просто скопировать ваш код или нет)
pdo - хорошая вещь –
PDO определенно хорошая вещь. То, что вам не хватает, возможно, является уникальным индексом – e4c5
Как уже упоминалось выше, вы, скорее всего, также не указали уникальный индекс в поле электронной почты. С уникальным индексом вы автоматически получите ошибку, если попытаетесь вставить дублирующее значение по уникальному индексу. Один из способов проверить дубликат - это поиск по электронной почте, который вы хотите вставить ДО того, как вы вставляете его с помощью «SELECT» – Epodax