2017-05-12 11 views
0

나는 PHP와 오라클 데이터베이스에 문제가있어.테이블에 번호를 삽입 오라클에 이상한 번호가

PHP에서 테이블에 숫자를 삽입하면 테이블의 숫자가 이상합니다. 예를 들어 PHP에서 쿼리를 실행하여 테이블에 숫자 '1'을 삽입하면 숫자 '1'이 저장되지 않지만 '4294967296'과 같은 다른 번호에 저장됩니다. 번호 '10'을 삽입하면 '4294967306'이되고, 계속해서 계속됩니다. 데이터 유형은 NUMBER (10,0)입니다. 내가 같은 테이블 구조의 MySQL 같은 다른 데이터베이스로 변경할 때

oracle table

아무 문제가 없습니다. '1'을 삽입하면 '1'도 저장됩니다. 또한 우분투 서버에 프로그램을 업로드 한 후에도 문제가 없습니다. Oracle은 PHP에서 동일한 번호를 저장합니다.

Laragon Framework를 사용하여 Windows 랩톱에서 Laragon Framework를 사용하여 PHP 프로그램을 개발합니다.

무엇이 문제인지 전혀 알 수 없습니다. PHP, 랩톱, Laravel, Laragon 또는 Oracle입니까?

도와 주셔서 감사합니다.

+1

당신의 PHP 코드를 보여줄 수 있습니까? 어떻게 삽입하나요? – JSapkota

+0

나는 설득력있는 Laravel을 사용하고 있습니다. 내 코드 :'$ user = new User; $ user-> id = 1; $ user-> name = 'lolol'; $ user-> username = 'lolol'; $ user-> active_directory = 0; $ user-> save();' –

+0

난 그냥 원시 코드를 사용하여 삽입 할 때, 아무 문제도 찾을 수 있습니다. 'DB :: insert ('id, username, name, email, active_directory, domain) 값 (?,?,?,?,?,?)', [10, 'dayle' , 'dayle', '0', 'esdm']))'. 하지만 여전히'$ user-> save()'를 사용하면 작동하지 않습니다. –

답변

0

나는 mutator를 사용하여 속성을 문자열로 변환하고 있습니다. 때문에 정수 (0) 대신 테이블에 문자열 ('0')을 삽입하면 작동합니다. 아래는 사용자 모델의 뮤 테이터입니다.

//other User model methods.... 
    public function setActiveDirectoryAttribute($attrValue){ 
     $this->attributes['active_directory'] = (string) $attrValue; 
    }