用户需要通过前端网页PHP脚本,手动把保存有员工每天打卡记录的utf8编码的csv文件导入到MySQL数据库。在写入数据库前需要先查询该记录是否与数据库内保存的有重复。请生成代码,注意csv文件编码为utf8
时间: 2024-02-24 20:55:32 浏览: 65
python脚本,根据excel数据自动创建mysql库、表-并更新数据
5星 · 资源好评率100%
以下是可以实现您描述的功能的PHP脚本代码:
```php
<?php
// 连接到MySQL数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 设置MySQL字符集为utf8
$conn->set_charset("utf8");
// 检查是否有POST请求
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// 获取上传的文件
$file = $_FILES["file"]["tmp_name"];
// 检查上传的文件是否为CSV文件
if ($_FILES["file"]["type"] != "text/csv") {
die("错误:请上传CSV文件");
}
// 打开CSV文件
$handle = fopen($file, "r");
$data = fgetcsv($handle, 1000, ",");
// 获取CSV文件中的每一行数据
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
// 获取每一行数据的第一列和第二列
$name = $data[0];
$date = $data[1];
// 查询数据库是否已经存在该记录
$sql = "SELECT * FROM employee_records WHERE name='$name' AND date='$date'";
$result = $conn->query($sql);
// 如果不存在,则将该记录插入到数据库
if ($result->num_rows == 0) {
$sql = "INSERT INTO employee_records (name, date) VALUES ('$name', '$date')";
if ($conn->query($sql) === TRUE) {
echo "成功插入记录:姓名:" . $name . ",日期:" . $date . "<br>";
} else {
echo "错误:" . $sql . "<br>" . $conn->error;
}
} else {
echo "记录已存在:姓名:" . $name . ",日期:" . $date . "<br>";
}
}
// 关闭CSV文件
fclose($handle);
}
// 关闭数据库连接
$conn->close();
?>
```
这个脚本将上传的CSV文件中的每一行数据与数据库中的记录进行比较,如果不存在,则将该记录插入到数据库中。如果已经存在,则输出一个消息。请注意,这个脚本并没有考虑CSV文件中可能存在的错误,例如日期格式不正确等。如果需要更完整的错误处理,请根据需要进行修改。
阅读全文