我试图读取文本文件。
这是我的文本文件的示例:
“20130228”,“0000079511”,“ESTEVES PAIVA TERESA HELENA”,“”,“4”,“PAGO UNICO”, “”, “”, “”, “”, “”,0.00,0.00,0.00,0.00,2000.00, “20121213”
你可以想象我有两个日期20130228和20121213,第五列是一个数字,但当我读取文件并填写我的数据库中的表时,我在每个日期得到00-00-0000而0 4号。
这是我的代码,用于读取和插入表格中的信息:
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,",","'"));
提前感谢您的帮助
答案 0 :(得分: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。