我想防止重复值从使用 PHP 的表单中复制到数据库表中。
我创建了以下内容:
具有名为clients的表的数据库:
CREATE TABLE clients(
firstName varchar(20),
lastName varchar(20),
primary key(firstName, lastName));
一个名为form.html的简单表单
<h2>Enter your First and Last Name</h2>
<form action="frm_script.php" method="post">
<p><strong>First Name:</strong><br /> <input type="text" name="firstName" /></p>
<p><strong>Last Name:</strong><br /> <input type="text" name="lastName"/></p>
<input type="submit" name="submit" value="Add Customer" />
</form>
一个名为frm_script.php的表单处理脚本
<?php
if(isset($_POST['submit']))
{
//get the name and comment entered by user
$firstName = $_POST['firstName'];
$lastName = $_POST['lastName'];
//connect to the database
$dbc = mysqli_connect('host', 'username', 'password', 'dbname') or die('Error connecting to MySQL server');
//insert results from the form input
$query = "INSERT IGNORE INTO clients(firstName, lastName) VALUES('$firstName', '$lastName')";
$result = mysqli_query($dbc, $query) or die('Error querying database.');
mysqli_close($dbc);
}
echo "Customer Added";
?>
到目前为止,使用我的frm_script.php文件,上述工作和一个独特的记录显示客户添加。但是,对于重复记录,它会抛出“错误查询数据库”。
如何为以下内容更新frm_script.php脚本?
如果在输入名字/姓氏组合时发现重复行,则应显示消息“客户已列出”以及该记录。
如果在表单上输入名字/姓氏组合时未发现重复行,则应将条目插入数据库并显示消息“客户已添加”
我已经读过应该先运行一个 SELECT 然后再运行一个 INSERT 但我不确定如何在我现有的代码中实现它。