programing

PDO:: 10진수 타입의 PARAM?

bestcode 2023. 2. 6. 23:34
반응형

PDO:: 10진수 타입의 PARAM?

2개의 데이터베이스 필드가 있습니다.

`decval` decimal(5,2)
`intval` int(3)

업데이트를 위한 2개의 pdo 쿼리가 있습니다.int를 갱신하는 것은 정상적으로 동작합니다.

$update_intval->bindParam(':intval', $intval, PDO::PARAM_INT);

소수점 필드를 업데이트할 수 없습니다.아래 세 가지 방법을 시도해 봤지만 소용이 없습니다.

$update_decval->bindParam(':decval', $decval, PDO::PARAM_STR);
$update_decval->bindParam(':decval', $decval, PDO::PARAM_INT);
$update_decval->bindParam(':decval', $decval);

데이터베이스 유형에 문제가 있는 것 같습니다.decimal?가 있습니까?PDO::PARAM타이프 분야에서는decimal? 그렇지 않은 경우 회피책으로 무엇을 사용해야 합니까?

없어요PDO::PARAM소수점/부두에 대해서는, 당신은 사용해야 할 것이다.PDO::PARAM_STR.

UP는 PDO를 사용해야 합니다.PARAM_STR도 마찬가지입니다.데이터베이스의 컬럼이 NUMERIC(M, D) 또는 DIMAL(M, D) 타입의 경우, M은 문자수이며, 정밀도는 입력할 수 있는 문자의 합계이며, D는 소수 자릿수입니다.숫자(10,2) 예제에서는 정확도가 높은 위치에 8개의 집과 소수점 두 자리가 있습니다.그래서 총 10글자가 있고 소수점 이하에 2글자가 예약되어 있습니다.

해결책을 찾았습니다. PDO와 같은 10진수 파라미터를 전송합니다.SQL 서버 스토어 프로시저에서 PARAM_STR은 10진수(int,dec)와 같이 수신합니다.

PHP

$stmt_e->bindParam(':valor_escala_desde', $valor_escala_desde, PDO::PARAM_STR);

SQL Server, 저장 절차:

@valor_escala_desde decimal(18,2),

완료했습니다.

PDO 사용:유형 int 또는 Bool이 아닌 모든 열 유형에 대한 PARAM_STR

언급URL : https://stackoverflow.com/questions/2718628/pdoparam-for-type-decimal

반응형