PHP 삽입 쿼리를 사용하여 MySQL 데이터베이스에 현재 타임스탬프를 삽입하는 방법
MySQL 데이터베이스에 구조가 있는 테이블이 있습니다.
username - varchar
insert_time - timestamp
이 테이블은 MySQL에서 phpMyAdmin 도구를 사용하여 생성되었습니다.insert_time
열, 기본값을 다음과 같이 언급했습니다.0000-00-00 00:00:00
.
문제는 나중에 PHP 스크립트를 사용하여 이 기본값을 현재 타임스탬프로 업데이트해야 한다는 것입니다.
저는 다음과 같은 PHP 코드를 시도했습니다.
$update_query = 'UPDATE db.tablename SET insert_time=now() '.
'WHERE username='.$somename;
PHP 스크립트가 실행되면 실패하고 데이터베이스에 아무것도 삽입할 수 없습니다.
내가 뭘 잘못하고 있는 거지?
어떤 오류 메시지가 표시됩니까?
저는 당신의 실제 오류가 당신의 php 변수가 따옴표로 싸여 있지 않기 때문이라고 생각합니다.사용해 보세요.
$update_query = "UPDATE db.tablename SET insert_time=now() WHERE username='" .$somename . "'";
이 형식은 현재 타임스탬프를 가져오고 mysql에 저장하는 데 사용됩니다.
$date = date("Y-m-d H:i:s");
$update_query = "UPDATE db.tablename SET insert_time=".$date." WHERE username='" .$somename . "'";
현재()의 사용법이 정확합니다.그러나 전체 쿼리 주위에 따옴표 유형을 사용하고 값 주위에 따옴표 유형을 사용해야 합니다.
시작과 끝에 큰따옴표를 사용하고, 주변에 작은따옴표를 사용하도록 쿼리를 수정할 수 있습니다.$somename
:
$update_query = "UPDATE db.tablename SET insert_time=now() WHERE username='$somename'";
따옴표 없이 sql 문에 변수를 넣는 것을 잊었습니다.
$update_query =
"UPDATE db.tablename SET insert_time=NOW() WHERE username='" .$somename."'";
그 어떤 해결책도 좋아하지 않습니다.
제가 하는 방법은 다음과 같습니다.
$update_query = "UPDATE db.tablename SET insert_time=now() WHERE username='"
. sqlEsc($somename) . "' ;";
그런 다음 나는 나만의 sqlEsc 함수를 사용합니다.
function sqlEsc($val)
{
global $mysqli;
return mysqli_real_escape_string($mysqli, $val);
}
대신에NOW()
사용할 수 있습니다.UNIX_TIMESTAMP()
또한:
$update_query = "UPDATE db.tablename
SET insert_time=UNIX_TIMESTAMP()
WHERE username='$somename'";
MySQL에서 UNIX_TIMestamp와 NOW()의 차이
언급URL : https://stackoverflow.com/questions/6075926/how-to-insert-the-current-timestamp-into-mysql-database-using-a-php-insert-query
'programing' 카테고리의 다른 글
레지스트리 값이 있는지 테스트 (0) | 2023.09.02 |
---|---|
다른 구성 요소에서 업데이트할 때 서비스 변수 변경을 감지하려면 어떻게 해야 합니까? (0) | 2023.09.02 |
기존 가상 환경을 정상적으로 업그레이드할 수 있습니까? (0) | 2023.09.02 |
python MySQLdb를 사용하여 *.sql 파일 실행 (0) | 2023.09.02 |
MySQL 데이터베이스에 BOOL 값을 삽입하는 방법 (0) | 2023.09.02 |