0

CSV ファイルを受け入れるデータ インポート ルーチンがあります。その最初の列には、0123、0517、1531 などの形式の ID 値で構成される文字データセットが含まれています。通常、3 桁の数字の先頭にゼロが付いた 4 桁です。

データは varchar(255) フィールドを使用してテーブルにロードされていますが、LOAD DATA コマンドを呼び出すと、先行ゼロなしですべてインポートされます。私がここに欠けているものはありますか?

db_query('CREATE TABLE feed_buildings (
  BLDGID varchar(255),
  BLDGNAME varchar(255),
  CITY varchar(255),
  STATE varchar(255),
  ZIPCODE varchar(255),
  LLRDID varchar(255),
  BLDGGLA varchar(255),
  ADDRESS1 varchar(255),
  ADDRESS2 varchar(255),
  NMBRUNIT varchar(255),
  MNGRID varchar(255),
  INACTIVE varchar(255),
  OCCGLA varchar(255) )', false, false);

この例では、次のコマンドを実行すると先頭のゼロが失われるのは BLDGID フィールドです。

$loadfields = ' ( BLDGID, BLDGNAME, CITY, STATE, ZIPCODE, LLRDID, @ignore, BLDGGLA, @ignore, ADDRESS1, 
  ADDRESS2, @ignore, @ignore, NMBRUNIT, MNGRID, @ignore, @ignore, @ignore, @ignore, @ignore, 
  @ignore, @ignore, @ignore, @ignore, @ignore, @ignore, @ignore, @ignore, INACTIVE, @ignore, 
  @ignore, @ignore, @ignore, @ignore, @ignore, OCCGLA )';

$loadquery = 'LOAD DATA LOCAL INFILE \'' . $path . '\' INTO TABLE feed_buildings . ' FIELDS TERMINATED BY \',\' ENCLOSED BY \'"\' LINES TERMINATED BY \'\r\n\' IGNORE 1 LINES';
db_query_unprepared($loadquery . $loadfields);

助けてくれてありがとう!

4

1 に答える 1

0

無視してください -- 最初の数回はどうなったのかわかりませんが、最後の数回は正しくインポートされています。

于 2013-02-18T20:26:00.720 に答える