何よりもまず、私の問題を見てくれている人に感謝します。私は PHP、Apache、または MySQL の専門家ではないので、ご容赦ください。fgetcsv を使用して CSV ファイルを取得し、ループして MySql に挿入する小さなスクリプトを作成しました。このスクリプトは、問題なく CRON ジョブで約 2 か月間実行されました。Godaddy が Apache (2.2 から 2.4) を更新した時点で、動作を停止し、500 内部エラーが返されたと思います。同じ問題を持つ最初の CSV ファイルを補完するために、別の CSV ファイルを使用して新しいスクリプトを作成し始めて初めてわかりました。これまでのところ、私は自分の問題に関連して考えられるすべてのことをグーグルで検索し、多くの Stackoverflow の回答を読み、ゴダディと 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] End of scriptヘッダーの前に出力:
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を機能させることができませんでした.