2016-09-27 2 views
0

PHP로 작성된 업로드 스크립트가 CSV에서 데이터를 처리하고 업로드 된 각 CSV에 대한 각 특정 테이블에 삽입합니다.PHP로 다른 날짜 형식을 mysql에 삽입하십시오

다른 날짜 형식의 데이터를 올바르게 삽입하지 않는 문제를 해결해야합니다. 시간을 제외하고 모든 날짜 형식을 포함하고 YYYY-MM-DD (2016-09-27)와 같이 저장해야합니다. 은 다음과 같습니다

Database table: 
     id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
     USER VARCHAR(50) NOT NULL, 
     Date DATE, 
     Time TIME 

    PHP/MySQL 
     $stmt = $conn->prepare("INSERT INTO ".$table_name." (User, Date,Time) VALUES (?,?,?)"); 
     $stmt->bind_param("sss", $user, $date,$time); 

     $user = $data_array[$i][0]; 
     $date = $data_array[$i][1]; 
     $time = $data_array[$i][2]; 

     $stmt->execute(); 

내가 STR_TO_DATE에 대해 읽어 봤는데하지만 난이 경우 사용해야하는 위치 모르겠어요.

$user = $data_array[$i][0]; 
    $date = $data_array[$i][1]; 
    $time = $data_array[$i][2]; 

    $stmt->bind_param("sss", $user, $date,$time); 

다음 : 당신은 MySQL의 날짜 형식 기능을 사용할 수 있습니다 유 bind_param()이 같이 $user $date $time

함께 사용 후

+1

경우에만 FORMAT 날짜에 대한 데이터베이스에'Y-m-d' 유형 날짜를 삽입 할 수 있습니다. –

+0

정확히 $ date = $ data_array [$ i] [1]의 데이터 유형 및 값은 무엇입니까? – sietse85

+0

"LOCALE과 같은 몇 가지 힌트를 지정할 수 없다면"모든 날짜 형식을 포함해야합니다. "이것은 불가능합니다 (예 : LOCALE). 2011 년 2 월 3 일이 3 월 2 일인지 2 월 3 일인지 알 수있는 방법이 없습니다. 영어가 아닌 단어로 표시되는 2 자리 숫자 또는 월수로 표현되는 가능성을 고려하기 전에 말입니다. – symcbean

답변

0

는 처음에 나는 당신의 정의 바르 나타났습니다.

참조 : 유효한 MySQL의 날짜로 문자열을 날짜로 변환 할 수 있습니다이 기능을 https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

.

VALUES(?,DATE_FORMAT('?','format'),?)

설명서의 데이터가

예에 형식과 형식을 바꾸기 : SELECT DATE_FORMAT('2009-10-04 22:23:00', '%W %M %Y');

+0

VALUES 문에 따옴표를 사용해야합니까? –

+0

이렇게 하시겠습니까? "INSERT INTO". $ table_name. "(사용자, 날짜, 시간) VALUES (?, DATE_FORMAT ('?', '% Y- % m- % d')?)"); CSV를 업로드하지만 테이블을 생성하고 데이터를 삽입하지 않습니다 :/ –

+0

atmel 기반 장치에서 CSV를 업로드하기 때문에 화면에 오류가 표시되는 것이 약간 까다 롭습니다. 어쩌면 로그에 뭔가가있을 수 있습니다. –

관련 문제