我想防止使用 PHP 的表单中的重复值进入数据库表。
我创建了以下内容:
具有名为的表的数据库clients:
CREATE TABLE clients(
firstName varchar(20),
lastName varchar(20),
primary key(firstName, lastName));
一个简单的表格名为表单.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,但我不确定如何将其实现到我现有的代码中。