0

プログラムで多数の CSV ファイルを MySQL DB にインポートしようとしています。

いくつかの調査の後、LOAD DATA を見つけましたが、サーバーが許可していないため、可能ではありません。

次に、mysqlimportが実行可能な代替手段であることがわかりました。

何が起こっているかは次のとおりです。

FTP サーバーから多数の CSV ファイルをダウンロードし、1 つずつ、次のように実行します。

exec("ln " . $path . $csv_file. " " . $path . "CSVs.txt");
exec("mysqlimport -u root -ppass --local --ignore-lines=1 --columns=column1,column2 " .  $path . "CSVs.txt>" . $path . "_.txt");
unlink($path . "CSVs.txt");

まず、ファイルのシンボリック リンクを作成します (テーブル名とは異なるファイル名を使用できなかったため)。次に、mysqlimportコマンドを実行し、出力を txt ファイルに送信します。最後に、シンボリック リンクを削除します。

実行すると、CSV一時ファイルが作成および削除されますが、DBにも出力txtにも何も表示されません。

コマンドをエコーし​​てターミナルで過去に実行すると、問題なく動作しますが、exec では何も起こりません。

引用符とバックスラッシュに関係があると思いますが、なんとか修正できませんでした。

どんな助けでも大歓迎です:P

編集: 私は既に**mysqlimpot bin を chmod** しましたが、それでも機能しませんでした!

4

1 に答える 1

1

PHP が mysqlimport コマンドを見つけられなかったようです。だから、私はそれを機能させるためにフルパスを使わなければなりませんでした!

于 2012-10-29T14:35:39.260 に答える