Nice programing

십진수 유형의 PDO :: PARAM?

nicepro 2020. 10. 27. 23:17
반응형

십진수 유형의 PDO :: 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) 또는 10 진수 (M, D) 유형 인 경우 M은 문자 수의 정밀도 여야한다는 점에 유의해야합니다. 입력 할 수있는 총 문자 수, D는 소수점 이하 자릿수입니다. NUMERIC (10,2) 예제에서 우리는 정확도의 자릿수와 소수점 두 자리까지의 집이 8 개 있습니다. 따라서 총 10 개의 문자가 있고 소수 자리에 2 개가 예약되어 있습니다.


솔루션을 찾았고 PDO :: PARAM_STR과 같은 십진수 매개 변수를 보내고 SQL 서버 저장소 프로 시저에서 decimal (int, dec)과 같이 수신합니다.

PHP

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

SQL 서버, 저장 절차 :

@valor_escala_desde decimal(18,2),

완료됩니다.

참고 URL : https://stackoverflow.com/questions/2718628/pdoparam-for-type-decimal

반응형