0

テキストファイルを読み込もうとしています。

これは私のテキストファイルの例です:

"20130228"、 "0000079511"、 "ESTEVES PAIVA TERESA HELENA"、 ""、 "4"、 "PAGO UNICO"、 ""、 ""、 ""、 ""、 ""、0.00,0.00,0.00,0.00、 2000.00、 "20121213"

ご想像のとおり、この2つの日付20130228と20121213があり、5番目の列は数字ですが、ファイルを読み取ってデータベースのテーブルに入力すると、すべての日付で00-00-0000になり、数字の4ではなく0になります。

情報を読み取ってテーブルに挿入するためのコードは次のとおりです。

if ($type == "text/csv") {
            move_uploaded_file($temp, "upload/$name");

            $fp = fopen("upload/$name",'r') or die("no se puede abrir el archivo");

                do { 
            if ($data[0]) { 
                mysql_query("INSERT INTO contacts (fecha_pago, cedula_alumno, nombre_alumno, mencion, codigo_forma) VALUES 
                    ( 
                        '".addslashes($data[0])."', 
                        '".addslashes($data[1])."', 
                        '".addslashes($data[2])."'
                        '".addslashes($data[3])."'
                        '".addslashes($data[4])."' 
                    ) 
                "); 
            } 
        } while ($data = fgetcsv($fp,1000,",","'"));

よろしくお願いします

4

1 に答える 1

1

INSERTを実行する前に、日付を解析する必要があります。つまり、$data[0]の値を解析する必要があります。あなたが挿入していると私が推測しているMySQLは、2012-12-31の形式の日付を受け入れますが、20121231は受け入れません。

だからやることを検討してください

$parsedDateYear = substr($data[0], 0, 4); 
$parsedDateMonth = substr($data[0], 4, 2); 
$parsedDateDay = substr($data[0], 6, 2); 

$finalDate = $parsedDateYear . "-" . $parsedDateMonth . "-" . $parsedDateDay; 

そして、INSERTステートメントで$finalDateを使用します。

于 2013-03-14T19:08:53.080 に答える