来自.csv文件的PHP导入条目 - MySQL查询问题

时间:2015-12-29 09:33:16

标签: mysql

我正在尝试将.csv文件中的某些条目导入到我的实际数据库中。我做了这一千遍没有任何问题。从昨天开始,我再也无法导入它了。

我总是收到这个错误:

Error Number: 1242

Subquery returns more than 1 row

UPDATE preturi_import I SET I.art_id = ( SELECT ART_ID FROM tof_articles WHERE I.art_nr = ART_ARTICLE_NR AND I.sup_id = ART_SUP_ID ) WHERE I.sup_id > 0

Filename: /home/pieseaut/public_html/controllers/backend.php

Line Number: 1647

由于脚本工作正常,直到昨天我还没有对脚本进行任何修改,我真的无法理解问题所在。

确切的mysql查询如下:

 $sqlUpdate = "UPDATE preturi_import I SET I.art_id = (SELECT ART_ID FROM tof_articles WHERE I.art_nr = ART_ARTICLE_NR AND I.sup_id = ART_SUP_ID) WHERE I.sup_id > 0";

无论是.csv文件是单个条目还是几十个或几百个或几千个,我总是得到与开头提到的相同的错误。

但有一个问题。由于某些愚蠢的原因,我的CentOS服务器上的/ tmp分区已满,一些mysql表崩溃了。我使用mysqlcheck和--repair选项来修复它们以及myisamchk。我已经重新启动了mysql服务,我发现这些表没有错误。

任何帮助都是真正的帮助!

1 个答案:

答案 0 :(得分:2)

错误非常明确:您的SELECT ART_ID FROM tof_articles WHERE I.art_nr = ART_ARTICLE_NR AND I.sup_id = ART_SUP_ID查询会为至少一个CSV行返回多个结果。

我建议在您执行查询之前回显CSV行,当错误发生时,您将知道该行是否导致问题。当你得到它,检查你的数据库。