1

首先感谢所有关注我问题的人。我不是 PHP、Apache 或 MySQL 方面的专家,所以请多多包涵。我创建了一个小脚本,它将使用 fgetcsv 循环并插入到 MySql 中的 CSV 文件。该脚本在 CRON 作业上运行了大约 2 个月,没有任何问题。我相信当时 Godaddy 更新 Apache(2.2 到 2.4)它停止工作并返回 500 内部错误。我只有在开始使用不同的 CSV 文件创建一个新脚本来补充我的第一个具有相同问题的 CSV 文件时才发现。到目前为止,我已经用谷歌搜索了我能想到的与我的问题相关的所有内容,我已经阅读了许多 Stackoverflow 答案,并与 Godaddy 坐了 2 个小时(他们最后说他们不知道为什么,他们相信我的脚本导致问题,但无法进一步建议)。也许这与更新无关,但奇怪的是在这样的更新之后才停止。在此更新之前,我的脚本需要 34 秒才能完成。现在我收到 500 错误,如果有人能看出我的脚本有问题或者能告诉我为什么它突然停止了,我将不胜感激。

<?php
session_start();
define("USERACCESSCONTROL", "TRUE");
include 'c_db.php';
if (!$importcsv = fopen("../sync/IVQtyPvt.csv", "r")) {
    echo "could not open file";
} else {
    do {
        If ($i > 1) {
            if ($data[0]) {
                $updatecsv = $inv_con->Prepare("INSERT INTO slave_inventory 
                    (ITEMNMBR,ITMGEDSC,CDC,MAIN,RTO1,RTO2,CDA,KEN,MIS,VAL,
                    KAL,QTYONORD,QTS_CDC,QTS_KEN,QTS_MIS,QTS_KAL,STNDCOST,
                    updated) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,NOW())
                    ON DUPLICATE KEY UPDATE ITMGEDSC=?,CDC=?,MAIN=?,RTO1=?,
                    RTO2=?,CDA=?,KEN=?,MIS=?,VAL=?,KAL=?,QTYONORD=?,
                    QTS_CDC=?,QTS_KEN=?,QTS_MIS=?,QTS_KAL=?,STNDCOST=?,
                    updated=NOW()");
                $updatecsv->bind_param("ssiiiiiiiiiiiiiiisiiiiiiiiiiiiiii",
                        $data[0], $data[1], $data[2], $data[3], $data[4],
                        $data[5], $data[6], $data[7], $data[8], $data[9],
                        $data[10], $data[11], $data[12], $data[13],
                        $data[14], $data[15], $data[16], $data[1], $data[2],
                        $data[3], $data[4], $data[5], $data[6], $data[7], 
                        $data[8], $data[9], $data[10], $data[11], $data[12],
                        $data[13], $data[14], $data[15], $data[16]);
                $updatecsv->execute();
            }
        }
        $i++;
    } while ($data = fgetcsv($importcsv, ","));
}
?>

这是我的日志文件中重复的条目。

[Fri Aug 02 04:31:29 2013] [9618523] [dir:error] [client 64.74.215.89:33823] 在 mod_dir 内部,将 document_root 设置为 PARENT_DOCUMENT_ROOT:/var/chroot/home/content/23/9618523/html [ fcgid:warn] [client 70.89.210.90:55475] mod_fcgid: 在 120 秒内读取数据超时 [Fri Aug 02 09:30:34 2013] [9618523] [core:error] [client 70.89.210.90:55475] 脚本结束标题前的输出:

我已添加到我的 php.ini 和 php5.ini

max_execution_time = 340
max_input_time = 340

将此添加到我的 .htaccess 中(修复可能的 fastcgi 问题)

AddHandler x-httpd-php5-cgi .php
AddHandler x-httpd-php5-cgi .php5

仍然没有骰子 我的 CSV 文件有 17 列,27000 行,如果有更好的方法可以做到这一点,我会对此持开放态度,但我无法像在共享主机上那样让 LOAD INFILE 工作。

4

1 回答 1

0

原来 Godaddy 是问题所在,我的脚本又开始自己工作了。我想这就是我在 Godaddy 上共享托管所得到的。我想我很快就要换主机了。

于 2013-08-06T19:26:25.307 回答