在保持字段的同时将mySQL数据库与PHP合并

时间:2017-03-28 10:11:05

标签: php mysql

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

但是,我们遇到了更新数据库的问题。每周,我们需要合并来自csv的学生表,该表更新为课程,所有课程都来自教育系统。因此,有成千上万的学生,他们每个人都有一些细节,当更新时可以改变,但其他人需要保持不变。例如,我们在更新时需要保持相同的优点数,但是年份组或类等详细信息可能会发生变化。问题是,这个更新是由csv文件完成的,该文件也可能有新学生需要更新到数据库并且csv不是任何顺序。因此,我们试图找到一种解决方案,允许一个字段相同但允许其他字段更改。

所以我们尝试使用一个独特的密钥来加载LOAD DATA INFILE,但我们发现的问题是,虽然它保留了优点,却忽略了其他细节,只是添加了新学生。

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

顺便说一句,我们的代码将使用PHP。

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

提前感谢您的帮助,感谢抱歉。这是我的第一篇文章,如果我犯了任何错误,请原谅我。

1 个答案:

答案 0 :(得分:0)

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

注意:粗体位是按时间顺序所需的步骤。