php - php如何避免重复数据
问题描述
当我们再次输入相同的数据时,如何避免重复数据?相反,我想发出警告:
抱歉,您的用户名已被使用
我正在使用 php 脚本,我这样做是为了克服重复数据,但结果有意外错误。
这是我的代码,如果您愿意,请更正它。谢谢
<?php
if (isset($_POST['submit'])) {
$npm_siswa = $_POST['npm_siswa'];
$nama_siswa = $_POST['nama_siswa'];
$bidangst_siswa = $_POST['bidangst_siswa'];
$ipk_siswa = $_POST['ipk_siswa'];
$query ="INSERT INTO class(npm_siswa, nama_siswa, bidangst_siswa, ipk_siswa) VALUES('$npm_siswa','$nama_siswa','$bidangst_siswa','$ipk_siswa')";
$insert_data = mysqli_query($con, $query);
$goto = header('location: input_data.php');
if (headers_sent($goto) == true) {
exit();
}
}
$checking = "SELECT * FROM class WHERE npm_siswa ='$npm_siswa'";
$process = mysqli_query($con, $checking) or die(mysqli_error());
while($row_filter = mysqli_fetch_assoc($process)) {
$kelasId = $row_filter['kelasId'];
$npm_siswa = $row_filter['npm_siswa'];
$nama_siswa = $row_filter['nama_siswa'];
$bidangst_siswa = $row_filter['bidangst_siswa'];
$ipk_siswa = $row_filter['ipk_siswa'];
}
if (mysqli_num_rows($process) > 0) {
echo "maaf nama anda sudah digunakan";
} else {
$data = "INSERT INTO class(npm_siswa, nama_siswa, bidangst_siswa, ipk_siswa) VALUES('$npm_siswa','$nama_siswa','$bidangst_siswa','$ipk_siswa')";
$check = mysqli_query($con, $data);
}
?>
解决方案
另一种解决方案:确保是 DBMS 控制唯一性,并带有UNIQUE
约束。然后测试你mysqli_query
的返回值来处理错误。
$process = mysqli_query($con, $checking);
if (!$process)
{
// Handle your error
}
优点:只有一个查询
缺点:错误不一定是由于 UNIQUE 约束
推荐阅读
- javascript - 获取数组中不在对象值中的项
- python-3.8 - pyttsx3 未知语音ID
- c# - 如何让变量每秒异步上升 1?
- python - 基于文本的 RPG 的战斗序列
- javascript - 如何在 Vuejs 中获取路径的当前名称(例如“this”值)?
- apache-spark - 使用 DBR 7.3.x+ 将 XML 文件加载到 PySpark 中的数据框
- excel - 没有 VBA 的 Excel:如何从列中创建序列号跟随模式
- floating-point - GAS 汇编器打印浮点数
- redis - 使用 Digital Ocean 托管实例的 Redis 性能
- java - 如何在单击按钮时将自定义布局添加到线性布局