2

テキストファイルから行を読み取り、db に挿入する perl スクリプトがあります。

サンプル テキスト ファイルは次のようになります。

country   zipcode
------------------
India      712501
India      00032

ここで、最初の行は列名で、行は列の値を示します。列名と列値の両方が VARCHAR の EAV 形式で格納されます。

現在、zipcode 00032 の場合、perl スクリプトはそれを整数と見なしており、挿入クエリは INSERT VALUES('India',00032) になっています整数として)

perlモジュールが代わりに VALUES('India','00032') を置くように強制的に文字列にすることはできますか??

4

2 に答える 2

2

「準備」する前にデータをクエリに入れると、さまざまな問題が発生する可能性があります。プレースホルダーを使用します。このようにして、perlは各フィールドでどのデータ型が期待されるかを認識し、ほとんどの場合正しいことを行います...

于 2012-11-05T18:57:30.507 に答える
1

Perl は、数値のように扱う場合にのみ数値にします。

$x = "00032";
say $x;
$x += 0;
say $x;

出力:

00032
32

郵便番号文字列が設定されているコードは表示されませんでしたが、$postcode = "00032";代わりにを使用すると$postcode = 00032;、先頭のゼロが保持されます。値がファイルやユーザー入力などから来ている場合、外部データをプログラムに移動するコード内の何かが原因でそれらが失われていますが、関連するものを見ずに何が失われているのか正確にはわかりませんコード。

于 2012-11-05T13:33:54.527 に答える