0

csv ファイルを MYSQL に挿入しました。挿入される場合もありますが、データベースには 0、'Ã8 などの特殊文字がいくつかあります。Zend フレームワークを使用しています。

public function indexAction() {
    $db = Zend_Db_Table::getDefaultAdapter();
    $path = 'c:/RAA/test.csv';
    $row = 1;
    $result = array();
    if (($handle = fopen("c:/RAA/test.csv", "r")) !== FALSE) {
        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
            $num = count($data);
            $row++;
            for ($i=0; $i < $num; $i++) {
                $result = array(
                    'id' => $data[$i],
                    'name' => $data[$i],
                    'description' => $data[$i]
                );
            }
            $db->insert('test', $result);
        }
    }
    exit;
}
4

2 に答える 2

2

デフォルトの文字セットを確認する必要があります。次のように強制しapplication.iniます。

resources.db.params.charset = utf8

utf8(必要に応じて)使用している文字セットに置き換えてください!

于 2012-07-30T20:12:22.553 に答える
0

LOAD DATA INFILEその CSV ファイルをデータベースにインポートするには、MySQL の組み込みステートメントを使用することを検討する必要があります。インポートする行数に応じて、インポート時間が大幅に短縮されます。これは、単純なクエリとデータベース サーバーを介した一連のクエリであるためです。詳細については、 LOAD DATA INFILE 構文のドキュメントを参照してください。コードにそれを適用する方法の例が見つかります。

于 2012-07-30T20:39:19.557 に答える