将mySQL数据库与PHP合并,同时维护字段



背景:包括我在内的一群学生正在为我们学校创建一个成绩系统网站。一开始,我们基本上没有html,css,php或SQL数据库的经验。我会说我们管理得不错。

但是,我们在更新数据库时遇到了问题。每周,我们都需要合并来自 csv 的学生表格,该表格会根据班级和所有来自教育部门的系统进行更新。因此,有成千上万的学生,他们每个人都有某些细节,更新后可能会更改,但其他细节需要保持不变。例如,当我们更新时,我们的优点数量需要保持不变,但诸如其年级组或班级之类的详细信息可能会发生变化。问题是,此更新是针对csv文件完成的,该文件可能还需要将新学生更新到数据库,并且csv不按任何顺序排列。因此,我们正试图找到一种解决方案,允许一个字段相同,但允许其他字段进行更改。

因此,我们尝试使用唯一键加载数据INFILE,但我们发现的问题是,虽然它保留了优点,但它忽略了其他细节,只是添加了新学生。

编辑:所以学生有一个包含学生班级的类字段。当我们导入时,我们需要能够更改它,但仍然保留不会在 csv 文件中的 merit 字段。我们知道我们可以手动导入它,但怀疑这将需要很长时间才能运行。

顺便说一下,我们的代码将是PHP的。

tl;博士 需要了解如何从csv合并/导入数据库,仅更改现有学生的特定字段并添加新学生

提前感谢您的帮助,对不起长篇大论。这是我的第一篇文章,所以如果我犯了任何错误,请原谅我。

您将需要一个 php 脚本来读取文件的内容,最好是逐行读取,因为它是 CSV。然后,您需要使用每个 CSV 行中的主键唯一标识符来检查数据库中是否已存在具有该主键值的记录如果数据库中存在具有该主键的记录,请使用UPDATE查询仅更新优点。如果找不到使用该主键的记录,请使用INSERT语句将该新记录添加到数据库中。

注意:粗体位是必需的步骤,按时间顺序排列。

最新更新