PHP mysql 삽입 날짜 형식
이이 jQuery 입니다. 날짜 선택기의 형식은 다음과 같습니다.08/25/2012
데이터베이스에 삽입할 때 오류가 발생하며 0000-00 00 00 00만 삽입됩니다.
내 코드는
<?php
$id = $_POST['id'];
$name = $_POST['name'];
$date = $_POST['date'];
$sql = mysql_query( "INSERT INTO user_date VALUE( '', '$name', '$date')" ) or die ( mysql_error() );
echo 'insert successful';
?>
내 삽입이 정확하다고 확신해...
MySQL은 다음 형식의 값을 인식합니다.
「 「 」의
'YYYY-MM-DD'
""'YY-MM-DD'
느긋하다 '다'라는 구문을 사용할수 있습니다.날짜 부분 사이의 구분자로 임의의 구두점을 사용할 수 있습니다.를 들어, 「」라고 하는 것은,'2012-12-31'
,'2012/12/31'
,'2012^12^31'
, , , , 입니다.'2012@12@31'
등합니니다다할 수 .
'YYYYMMDD'
""'YYMMDD'
형식을 지정합니다.단, 문자열이 날짜로서 의미가 있는 경우.를 들어, 「」라고 하는 것은,'20070523'
★★★★★★★★★★★★★★★★★」'070523'
라고'2007-05-23'
'071332'
일 이 있음)로, 「」가 됩니다.'0000-00-00'
.「 「 」의 쪽인가?
YYYYMMDD
""YYMMDD
예를 "" (" ) 。19830905
★★★★★★★★★★★★★★★★★」830905
라고'1983-09-05'
.
'08/25/2012'
MySQL을 사용하다다음 4가지 옵션이 있습니다(요건에 대한 자세한 정보는 생략하고 애매한 순서로 선택할 수 있습니다.
옵션과 함께 를 사용하여 지원되는 형식으로 날짜를 제공하도록 Datepicker를 설정합니다.
<input type="hidden" id="actualDate" name="actualDate"/>
$( "selector" ).datepicker({ altField : "#actualDate" altFormat: "yyyy-mm-dd" });
사용자가를 볼 수
YYYY-MM-DD
포맷 대신 옵션을 설정하십시오.$( "selector" ).datepicker({ dateFormat: "yyyy-mm-dd" });
MySQL 함수를 사용하여 문자열을 변환합니다.
INSERT INTO user_date VALUES ('', '$name', STR_TO_DATE('$date', '%m/%d/%Y'))
jQuery에서 받은 문자열을 개체와 같이 PHP가 날짜로 인식하는 것으로 변환합니다.
$dt = \DateTime::createFromFormat('m/d/Y', $_POST['date']);
그리고 다음 중 하나를 수행합니다.
적절한 형식의 문자열을 입수합니다.
$date = $dt->format('Y-m-d');
UNIX 타임스탬프를 가져옵니다.
$timestamp = $dt->getTimestamp();
그런 다음 MySQL의 함수로 직접 전달됩니다.
INSERT INTO user_date VALUES ('', '$name', FROM_UNIXTIME($timestamp))
문자열을 유효한 리터럴로 수동으로 조작합니다.
$parts = explode('/', $_POST['date']); $date = "$parts[2]-$parts[0]-$parts[1]";
경고
코드가 SQL 주입에 취약합니다.SQL에 대해 평가되지 않는 매개 변수로 변수를 전달하는 준비된 문을 사용해야 합니다.내가 무슨 말을 하는지, 어떻게 고쳐야 하는지 모르겠으면 바비테이블의 이야기를 읽어보세요.
또한 PHP 매뉴얼 소개 장에서 설명한 바와 같이
mysql_*
★★★★이 확장자는 PHP 5.5.0 이후 사용되지 않으며 향후 제거될 예정이므로 새 코드 작성에는 권장되지 않습니다.대신 mysqli 또는 PDO_MySQL 확장자를 사용해야 합니다.MySQL API를 선택하는 방법에 대한 자세한 내용은 MySQL API 개요도 참조하십시오.
것 .
DATETIME
""TIMESTAMP
의 " " " 를 하는 것을 합니다. MySQL my my my my my 。DATE
대신 입력합니다., 및 타입에 기재되어 있는 바와 같이DATE
가 없는 값에 사용됩니다.type은 날짜 부분을 포함하지 .은 MySQL에서 하여 표시합니다.'YYYY-MM-DD'
is the the the. 범위는 지원음음음 음음음음 음음음 is 음 is is is 。'1000-01-01'
로로 합니다.'9999-12-31'
.DATETIME
부분을 됩니다.type은 날짜및 시간 부분을 모두 포함합니다.이 MySQL을 합니다.DATETIME
의 값'YYYY-MM-DD HH:MM:SS'
is the the the. 범위는 지원음음음 음음음음 음음음 is 음 is is is 。'1000-01-01 00:00:00'
로로 합니다.'9999-12-31 23:59:59'
.TIMESTAMP
데이터 유형은 날짜와 시간 부품을 모두 포함하는 값에 사용됩니다.TIMESTAMP
의 는 ★★★★★★★★★★★★★★★★★★★★★★★」'1970-01-01 00:00:01'
~ UTC ~'2038-01-19 03:14:07'
UTC.
해당 날짜에서 타임스탬프를 작성하는 것을 검토하십시오.
예:
$date = explode('/', $_POST['date']);
$time = mktime(0,0,0,$date[0],$date[1],$date[2]);
$mysqldate = date( 'Y-m-d H:i:s', $time );
$date_field = date('Y-m-d',strtotime($_POST['date_field']));
$sql = mysql_query("INSERT INTO user_date (column_name,column_name,column_name) VALUES('',$name,$date_field)") or die (mysql_error());
jQuery 출력의 날짜 형식이 YYY-MM-DD인지 확인해야 합니다.jQuery가 MM-DD-YYY를 반환하는 것을 알 수 있습니다.이는 유효한 MySQL 날짜 형식이 아니기 때문에 오류가 반환됩니다.
올바른 값으로 변환하려면 다음을 수행합니다.
$dateFormated = split('/', $date);
$date = $dateFormated[2].'-'.$dateFormated[0].'-'.$dateFormated[1];
그러면 유효한 MySQL 형식인 YYY-MM-DD 형식(예: 2012-08-25)을 얻을 수 있습니다.
또한 데이터베이스에 데이터를 삽입할 때 mysql_real_escape_string을 사용하여 SQL을 빠르게 주입하지 않도록 하거나 PDO 또는 MySQLi를 사용하는 것이 좋습니다.
를 사용한 :mysql_real_escape_string
게 것 같아요.
$sql = mysql_query( "INSERT INTO user_date VALUE( '', '" .mysql_real_escape_string($name). "', '" .mysql_real_escape_string($date). "'" ) or die ( mysql_error() );
jquery 달력 보기에서 날짜 개체 가져오기
var myDate = $('element').datepicker('getDate')
mysql의 경우 날짜는 올바른 형식이어야 합니다.시간대 문제를 처리하는 옵션 중 하나는 moment.js를 사용하는 것입니다.
moment(myDate).format('YYYY-MM-DD HH:mm:ss')
가장 간단한 방법은
$dateArray = explode('/', $_POST['date']);
$date = $dateArray[2].'-'.$dateArray[0].'-'.$dateArray[1];
$sql = mysql_query("INSERT INTO user_date (column,column,column) VALUES('',$name,$date)") or die (mysql_error());
HTML:
<div class="form-group">
<label for="pt_date" class="col-2 col-form-label">Date</label>
<input class="form-control" type="date" value=<?php echo date("Y-m-d") ;?> id="pt_date" name="pt_date">
</div>
SQL
$pt_date = $_POST['pt_date'];
$sql = "INSERT INTO `table` ( `pt_date`) VALUES ( '$pt_date')";
크리스마스 날짜를 받는다고 가정해 보겠습니다.2021년 12월 25일 (25 de Diciembre del ano 2021) : "d-m-Y"(예: "12-25-2021") 한 것을 만듭니다.DateTime
다음 중 하나:
var_dump(DateTime::createFromFormat("d-m-Y","25-12-2021", new DateTimeZone("America/Argentina/Buenos_Aires")));
이것은 출력으로 생성됩니다.
object(DateTime)#2 (3) {
["date"]=>
string(26) "2021-12-25 10:21:11.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(30) "America/Argentina/Buenos_Aires"
}
형식("Y-m-d H:i:s")을 사용하여 DateTime 개체에서 날짜 필드를 가져오려면:
var_dump(DateTime::createFromFormat("d-m-Y","25-12-2021",new DateTimeZone("America/Argentina/Buenos_Aires"))->format("Y-m-d H:i:s"));
그러면 Ready to insert 값이 출력으로 생성됩니다.
string(19) "2021-12-25 10:56:30"
요약하면 다음과 같이 MySQL에 형식화된 날짜('DD-MM-YYY')를 삽입할 수 있습니다.
<?php
//string input post like "25-12-2021"
$date_input = $_POST['date_input'];
//create DateTime object
$date_time_obj=DateTime::createFromFormat("d-m-Y","25-12-2021",new DateTimeZone("America/Argentina/Buenos_Aires"));
//format date ready to insert as string at MySQL
$str_date=$date_time_obj->format("Y-m-d H:i:s");
?>
이제 쿼리로 PHP에서 MySQL로 직접 실행:
<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');
//verify connection
if (mysqli_connect_errno()) {
printf("Error de conexión: %s\n", mysqli_connect_error());
exit();
}
//prepare the query to execute
$stmt = $mysqli->prepare("INSERT INTO table_example (DATE_FIELD) VALUES (?)");
//prevent sql injection
$stmt->bind_param('s', $str_date);
//execute prepared statements
$stmt->execute ();
?>
요즘 데이트는 잘 못해요.아래의 작업 덕분에 원하는 형식으로 날짜를 인쇄할 수 있습니다.
$year = $_POST['year'];
$month = $_POST['month'];
$day = $_POST['day'];
$scr = strtotime($year . '-' . $month . '-' . $day);
$gelis_tarihi = date('Y-m-d', $scr);
$yil = $_POST['yil'];
$ay = $_POST['ay'];
$gun = $_POST['gun'];
$birlestir = strtotime($yil . '-' . $ay . '-' . $gun);
$gelis_tarihi = date('Y-m-d', $birlestir);
이런 걸 시도해 보세요.
echo "The time is " . date("2:50:20");
$d=strtotime("3.00pm july 28 2014");
echo "Created date is " . date("d-m-y h:i:sa",$d);
우선 매장$date=$_POST['your date field name'];
insert into **Your_Table Name** values('$date',**other fields**);
날짜(' ')를 단일 코트로 포함해야 합니다.
도움이 됐으면 좋겠어요.
언급URL : https://stackoverflow.com/questions/12120433/php-mysql-insert-date-format
'programing' 카테고리의 다른 글
Java의 패턴과 일치하는 디렉토리에 파일 나열 (0) | 2022.11.07 |
---|---|
페이지 새로고침 시 Nuxtjs, VUEX 및 Firebase 인증 (0) | 2022.11.07 |
저는 json 데이터를 가진 authorsjson이라는 JSON 컬럼을 가지고 있습니다.이름이 지정된 문자열로 시작하는 모든 사용자를 찾습니다. (0) | 2022.11.07 |
PHP의 동적 상수 이름 (0) | 2022.11.06 |
#1030 - 스토리지 엔진 Aria에서 오류 176 "잘못된 체크섬으로 페이지 읽기"가 표시됨 (0) | 2022.11.06 |