用php语句在数据表中插入数据,插入前判断表中是否有重复的数据,如果有就报错
时间: 2023-12-03 15:45:55 浏览: 26
可以使用以下代码实现在插入数据前进行重复性检查:
```php
// 连接数据库
$conn = mysqli_connect("localhost", "username", "password", "mydb");
// 获取表单提交的数据
$name = $_POST['name'];
$email = $_POST['email'];
// 预处理查询语句
$stmt = mysqli_prepare($conn, "SELECT * FROM mytable WHERE name=? OR email=?");
// 绑定参数
mysqli_stmt_bind_param($stmt, "ss", $name, $email);
// 执行查询
mysqli_stmt_execute($stmt);
// 获取查询结果
$result = mysqli_stmt_get_result($stmt);
// 判断是否有重复数据
if ($row = mysqli_fetch_assoc($result)) {
// 存在重复数据,报错
echo "数据已存在";
} else {
// 不存在重复数据,执行插入
$insert_stmt = mysqli_prepare($conn, "INSERT INTO mytable (name, email) VALUES (?, ?)");
mysqli_stmt_bind_param($insert_stmt, "ss", $name, $email);
mysqli_stmt_execute($insert_stmt);
echo "插入成功";
}
// 关闭连接
mysqli_close($conn);
```
这里使用了预处理语句来避免 SQL 注入攻击,并且分别使用了两个查询语句来避免插入时出现死锁的情况。