programing

타임스탬프를 MySQL 테이블에 삽입하는 방법?

megabox 2023. 9. 6. 21:59
반응형

타임스탬프를 MySQL 테이블에 삽입하는 방법?

MySQL 테이블에서 날짜라는 필드가 있습니다. 그 유형은 타임스탬프라고 불리며 기본값은CURRENT_TIMESTAMP. 그러나 MySQL의 필드를 비워 두면 오류가 발생합니다.뭐 집어넣으려고 할 때는.time()저는 날짜를 다음과 같이 받습니다.0000-00-00 00:00:00.

<?php

    $name         = "";
    $email        = "";
    $subject      = "";
    $comments     = "";
    $nameError    = "";
    $emailError   = "";
    $subjectError = "";
    $x            = 5;
    function filterData($data)
    {
        $data = htmlspecialchars($data);
        $data = stripslashes($data);
        return $data;
    }
    $connection = mysql_connect('host', 'user', 'pass');
    if (!$connection) {
        die('Could not connect: ' . mysql_error());
    }
    
    
    $select_database = mysql_select_db("contact");
    
    if (!$select_database) {
        echo "could not select database " . mysql_error();
        
    }
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        //handles the name 
        $name = filterData($_POST["name"]);
        if (empty($name)) {
            $nameError = "please don't leave the name field blank";
        }
        //handles the email
        $email = filterData($_POST["email"]);
        if (empty($email)) {
            $emailError = "please don't leave the email field blank";
        }
        
        //handles the subject
        $subject = filterData($_POST["subject"]);
        if (empty($subject)) {
            $subjectError = "please don't leave this field blank";
        }
        
        $comments = filterData($_POST["comments"]);
        
    }
    
    $insertation = "INSERT INTO contactinfo (name, email, subject, date, comments)
        VALUES ('$name', '$email', '$subject', '', '$comments')";
    
    $insertationQuery = mysql_query($insertation, $connection);
    
    if (!$insertationQuery) {
        echo "Could not process your information " . mysql_error();
    } else {
        echo "Thank you for submitting the information";
    }
    
?>

필드가 다음으로 설정되어 있는지 확인하기 위해 테이블 설정을 확인하는 것 외에도NOT NULL의 채무 불이행으로CURRENT_TIMESTAMP, MySQL과 호환되는 문자열 형식으로 작성하여 PHP에서 날짜/시간 값을 삽입할 수 있습니다.

 $timestamp = date("Y-m-d H:i:s");

MySQL에 삽입할 수 있는 문자열 형식으로 현재 날짜와 시간을 제공합니다.

시도해보세요CURRENT_TIME()아니면now()기능들

"INSERT INTO contactinfo (name, email, subject, date, comments)
VALUES ('$name', '$email', '$subject', NOW(), '$comments')"

오어

"INSERT INTO contactinfo (name, email, subject, date, comments)
VALUES ('$name', '$email', '$subject', CURRENT_TIME(), '$comments')"

아니면 PHP로 시도해 보셔도 됩니다.date기능:

$date = date("Y-m-d H:i:s");
$insertation = "INSERT INTO contactinfo (name, email, subject, date, comments)
VALUES ('$name', '$email', '$subject', CURRENT_TIMESTAMP(), '$comments')";

이 쿼리를 사용할 수 있습니다.CURRENT_TIME 스탬프

CURRENT_TIMEstamp() 괄호를 사용해야 합니다.

다음과 같이 현재 타임스탬프를 수동으로 삽입할 필요가 없습니다.MySQL는 자동으로 저장할 수 있도록 이 기능을 제공합니다.언제.MySQL테이블이 생성됩니다. 다음 작업만 수행하면 됩니다.

  • 선택한다.TIMESTAMP당신의 칼럼 타입과 같이
  • 을 정하다Default의 가치.CURRENT_TIMESTAMP
  • 그다음에insert값을 삽입하지 않고 테이블에 행을 입력합니다.time기둥.

당신은 보게 될 것입니다.current timestamp행을 삽입하면 자동으로 삽입됩니다.첨부된 사진을 참조해주시기 바랍니다.

삽입/업데이트할 특정 정수 타임스탬프가 있는 경우 두 번째 arg로 타임스탬프와 함께 PHP date() 함수를 사용할 수 있습니다.

date("Y-m-d H:i:s", $myTimestamp)

DEFAULTMySql의 열 값은 해당 열에 대한 값이 제공되지 않은 경우에만 사용됩니다.그래서 당신이

INSERT INTO contactinfo (name, email, subject, date, comments)
VALUES ('$name', '$email', '$subject', '', '$comments')

사용하고 있지 않습니다.DEFAULT열의 값date, 그러나 빈 문자열을 제공하고 있으므로 오류가 발생합니다. 빈 문자열을 저장할 수 없기 때문입니다.DATETIME기둥.사용하는 경우에도 동일하게 적용됩니다.NULL, 왜냐하면 또NULL값입니다.그러나 삽입할 컬럼 목록에서 컬럼을 제거하면 MySql은DEFAULT해당 열(또는 데이터 유형 기본값)에 지정된 값

입어보실 수 있습니다.CURRENT_TIMESTAMP() function지나가는 동안에DML질의.

TIMESTAMP(curdate(), curtime())사용하여 현재 시간을 사용할 수 있습니다.

언급URL : https://stackoverflow.com/questions/37616760/how-to-insert-timestamp-into-my-mysql-table

반응형