プログラムで多数の 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** しましたが、それでも機能しませんでした!