fsgetcsvを使用してテキストファイルをデータベースにインポートする際に問題が発生しました。問題は、名前に一重引用符が含まれる名前を含むフィールドの一部に起因します(アイルランドのデータベース)。フィールドは^文字でエスケープされ、そのビットは正常に動作していますが、基本的に、'文字を含むフィールドに到達するとSQL構文にエラーがあることがわかります。
とにかくこの問題を回避することはできますか?エスケープ文字のさまざまな組み合わせを試しましたが、役に立ちませんでした。
PhpMyAdminのツールを使用してファイルをインポートすると機能し、次の用語を使用しても問題は発生しません。
フィールド終了文字:^フィールドで囲まれた文字: "フィールドエスケープ文字:\終了行:auto
問題のある行の例を次に示します。
4^01^Patrick O'Brien^account Number^7Address^client contact^sales contact^Validity Check on appointment and report to Receiver^21/01/13^^^^^^^^^^^02
これがfsgetcsvステートメントです
while (($data = fgetcsv($handle, 1000, "^" )) !== FALSE) {