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);
助けてくれてありがとう!