0

これら 2 つの LOAD DATA INFILE が異なる結果を生成する理由を特定しようとしています。以下の両方のクエリは、データをインポートします。

exec を使用した最初のクエリでは、テーブル フィールドから引用符が削除されません。2 番目のクエリは、期待どおりに引用符を削除します。execクエリのすべてのバリエーションを試しました-同じ問題...たとえば、試しました:

'\"' - (as is now)

"' . " . '"

'"' - (this of course won't work because it needs escaping \ )

'" . " . "' - (this also needs escaping)

\"\"

などなどバリエーション豊富。

出力例 (テーブル フィールド):

クエリ 1: "Joe Smoe"

クエリ 2: ジョー・スモー

私は間違った問題を見ていますか?また、クエリを数回書き直そうとしましたが、クエリが適切に記述されていると判断しました。

これらのクエリをまったく同じデータに対して実行しています。どちらもデータをロードしますが、最初のクエリは文字列から " (引用符) を削除できません。

クエリ 1

exec(mysql -u root -e \"USE mydb; LOAD DATA INFILE '" . $file . "' INTO TABLE  myTable FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\\n'\"; ");

クエリ 2

LOAD DATA INFILE 'filepath' INTO TABLE myTable FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';
4

1 に答える 1

0

次のようにしてこれを解決しました:

$mysqli->query("LOAD DATA INFILE '" . $file . "' INTO TABLE  myTable FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n'");
于 2013-02-23T00:02:03.157 に答える