実現したいこと
phpでLOAD DATA LOCAL INFILEを用いて、csvをデータベースにインサートしたい
問題点
下記、コードで実行すると、エラーが発生する
```ここに言語を入力
try{
$pdo =new PDO(DSN, DB_USERNAME, DB_PASSWORD); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $pdo->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES UTF8"); $pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true); $pdo->setAttribute(PDO::MYSQL_ATTR_LOCAL_INFILE, true); }catch(PDOException $Exception){ die('エラー:'.$Exception->getMessage()); }
try{
$sql = "LOAD DATA LOCAL INFILE '/ファイルパス/ファイル名.csv' INTO TABLE tbname FIELDS TERMINATED BY ',' "; $stmt = $pdo->prepare($sql); $stmt->execute(); }catch(PDOException $Exception){ die('エラー:'.$Exception->getMessage()); }
<エラー> SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute. 色々なサイトを見て試して見ましたが、改善することができません。 何卒宜しくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。