반응형
PDO:: 날짜의 PARAM?
몇 가지PDO::PARAM_???
날짜 또는 타임스탬프에 사용할 수 있는 존재 여부
샘플 코드:
$sql = "UPDATE my_table SET current_date = :date WHERE id = 43";
$statement = $pdo->prepare ($sql);
$statement->bindValue (":date", strtotime (date ("Y-m-d H:i:s")), PDO::PARAM_STR);
$statement->execute ();
SQL 쿼리에 날짜를 쓸 때는 스트링으로 씁니다.준비된 스테이트먼트에 대해서도 같은 작업을 수행해야 합니다.PDO::PARAM_STR
당신이 제안한 코드 부분에서 했던 것처럼요.
'타임 스탬프'의 경우, '타임 스탬프'는 다음을 의미합니다.
- MySQL 타임스탬프 데이터 유형: 동일한 데이터 유형입니다.
string
- PHP Unix 타임스탬프(정수)는 다음과 같습니다.
int
.
php date 함수를 사용하여 날짜를 작성하는 것만으로 이 문제를 해결할 수 있습니다.
$handle->execute(array(":date"=>date("Y-m-d H:i:s", strtotime($date)), PDO::PARAM_STR));
편집: 단, 주의해 주십시오.
strtotime
(http://php.net/manual/en/function.strtotime.php)에서 모든 종류의 날짜 형식을 처리할 수는 없습니다.
아니, 날짜를 문자열로 취급해
날짜를 문자열로 처리해야 하지만 매개 변수로 전달하기 전에 가 유효한 날짜인지 확인하는 함수를 만들 수 있습니다.다음과 같이 합니다.
function checkValidDate($date, $format = "dd-mm-yyyy"){
if($format === "dd-mm-yyyy"){
$day = (int) substr($date,0,2);
$month = (int) substr($date, 3,2);
$year = (int) substr($date, 6,4);
}else if($format === "yyyy-mm-dd"){
$day = (int) substr($date,8,2);
$month = (int) substr($date, 5,2);
$year = (int) substr($date, 0,4);
}
return checkdate($month, $day, $year);
}
RDB에 DateTime 값(문자열)을 적절히 저장하기 위한 전체 섹션MS:
/** @const string app_date_format expected date format in the PHP domain (Swiss) */
define( 'app_date_format', 'd.m.Y' );
/** @var PDOConnection $db */
$db = new \PDO( $dsn, $db_user, $db_pass, $db_options );
/** @var DateTime $date */
$date = \DateTime::createFromFormat( app_date_format, '30.11.2020' );
$stmt = $db-> prepare(
"UPDATE `test`
SET `test_date` = STR_TO_DATE(:date, '%Y-%m-%d %H:%i:%s' )
WHERE `test`.`test_id` = :id"
);
$id = 1;
$stmt->bindValue( ':id', $id );
$stmt->bindValue( ':date', $date-> format( 'Y-m-d H:i:s'));
$stmt->execute() or die( $stmt-> errorInfo()[2] );
PHP 7.4.25로 테스트 완료, MariaDB 10.6.4
이건 나한테 효과가 있었어.
//MS SQL
$sql = "UPDATE my_table SET current_date = GETDATE() WHERE id = 43";
$statement = $pdo->prepare ($sql);
//$statement->bindParam (":date", strtotime (date ("Y-m-d H:i:s")), PDO::PARAM_STR);
$statement->execute ();
언급URL : https://stackoverflow.com/questions/2374631/pdoparam-for-dates
반응형
'sourcecode' 카테고리의 다른 글
Java에서 URL 또는 URI를 구성하는 관용적인 방법은 무엇입니까? (0) | 2022.10.27 |
---|---|
"pip install --user..."의 목적은 무엇입니까? (0) | 2022.10.27 |
MariaDB / Galera - 정지 노드 전체 3개 노드 클러스터 동결 (0) | 2022.10.27 |
Python에서는 epoch 이후 초를 datetime 개체로 변환하려면 어떻게 해야 합니까? (0) | 2022.10.27 |
Python Flask, 콘텐츠 유형 설정 방법 (0) | 2022.10.27 |