###前提・実現したいこと
いつも拝見し勉強させていただいております。
数万行を超えるCSVデータをMYSQL内へ一括登録する為
PHPでサーバーへファイルをアップロード後、
クエリでLOAD DATA LOCAL INFILEを実行させようとしておりますが
DBへ登録が行えません。
エラー等も表示されず解決の糸口が分かりませんのでご相談いたしました。
確認すべき点などございましたらご教授お願いいたします。
###発生している問題・エラーメッセージ
PHPにてCSVデータの登録が行えません。
ファイルパス等も間違っておらず、PhpMyadminでクエリを実行したところ
無事に取り込みが行えました、
エラーメッセージ等は特に発生しておりません。
###該当のソースコード
//データ一括登録処理
function Insert($Updata){
$err_flg = false;
$cnt = 1;
$path = '/filepath/'.$Updata;
try{
if( Empty($this->db) ){
//DBのインスタンスが無い場合は自前で持つ
$this->ConDB();
}
//SQL
$query = "LOAD DATA INFILE '".$path."' INTO TABLE t_sample FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'";
$this->db->stmt = $this->db->dbh->prepare($query);
//実行処理
$this->db->result->tf = $this->db->stmt->execute();
$UpdateResult = $this->db->result->tf; $this->db->releaseStmt(); $msg = ""; if( $UpdateResult < 1 ){ $err_flg = true; $msg = "データの取込に失敗しました。\nデータは更新されていません。"; } }catch( Exception $e ){ echo $e->getMessage(); } return Array( $err_flg, $msg ); }
###試したこと
気になっている点として、$this->db->result->tf が空であることが
$UpdateResultの結果でわかりました。
また、$this->db->stmt->rowCount() で値を確認しようとしましたが0のままでございました。
###補足情報(言語/FW/ツール等のバージョンなど)
PHP Version 5.1.6
Mysql version 5.0.77
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/05 08:00
2018/01/05 08:15
2018/01/05 09:37