제목 | 프로시저 호출 관련하여 질문드립니다.(PDO_SQLSRV, PDO_ODBC) | ||
---|---|---|---|
글쓴이 | 오징어1 | 작성시각 | 2016/08/31 10:31:25 |
|
|||
현재 윈도우, 리눅스 두곳에서 작업을 진행하고 있습니다. DB서버는 SQL SERVER이고 프로시저를 호출해서 데이터를 INSERT하는 부분에서 한글 인코딩 문제로 어려움을 겪고 있습니다.
윈도우에서는 PDO_SQLSRV를 이용하고 리눅스에서는 PDO_ODBC를 이용하고 있습니다. 현재 프로시저도 수정할 수 없고 테이블도 수정할 수 없는 상황입니다. 알아보니 MSSQL은 varchar 데이터타입에 한글을 입력할 수 없다고 하더군요 그래서 varchar에 한글을 입력하기 위해서는 N'한글' 이런식으로 값 앞에 N을 붙여서 nvarchar형태로 인식하도록 하면 입력이 가능하더라고요
윈도우에서 PDO_SQLSRV로 프로시저를 호출하면 profiler로 봤을 때 declare @p1 int
set @p1=2
exec sp_prepexecrpc @p1 output,N'dbo.hp_mycafeboard_save_test',N'120',N'차량판매후기',N'999',N'0',N'0',N'0',N'0',N'관리자',N'테스트',N'20160830',N'111',N'1',N'',N'',N'',N'',N'',N'',N'',N'',N''
select @p1
이런식으로 값 앞에 N이 자동으로 붙어서 INSERT가 문제 없이 잘 되는데
리눅스에서 PDO_ODBC로 프로시저를 호출하면 profiler로 봤을 때 declare @p1 int
set @p1=1
exec sp_prepexecrpc @p1 output,N'dbo.hp_mycafeboard_save_test',@MNo=122,@BoardName='차량판매후기',@GroupNo=999,@SubGroup=0,@Category1=0,@Category2=0,@Category3=0,@Writer='관리자',@SubJ='테스트',@RegDate='20160830',@EditPass='111',@Cont='1',@UpFile1='',@UpFile2='',@Hand='',@MakerCode='',@ItemsCode='',@CarCode='',@YYMM='',@MbSido='',@MbCity=''
select @p1
이런식으로 값 앞에 N이 없어서 한글 입력시 깨져서 INSERT가 되고 있습니다.
프로시저 호출하는 소스는 동일하고
수동으로라도 리눅스에서 N을 붙여서 한글이 안깨지게 하고 싶습니다.
혹시 비슷한 경험 해결하신분 계신가여?ㅠㅠ 도와주세요ㅠㅠㅠㅠ |
|||
첨부파일 |
프로시저 콜.JPG (39.6 KB) |
||
다음글 | 마이페이지를 만들고 있는데요 (3) | ||
이전글 | 다른 서버에있는 html 소스 가져오기 (3) | ||
한대승(불의회상)
/
2016/08/31 11:31:51 /
추천
0
리눅스용 pdo_sqlsrv 로 테스트 해보세요.
|
오징어1
/
2016/08/31 11:35:53 /
추천
0
리눅스용 pdo_sqlsrv는 없던데요?ㅠㅠ
|
닉
/
2016/08/31 12:08:08 /
추천
0
인코딩이 깨지면 접속하는 클라이언트나 서버 설정에서 인코딩 설정쪽 보면 되지 않을가요??
|
배강민
/
2016/08/31 12:57:08 /
추천
0
CI 질문 게시판에도 올리신 동일한 질문글은 삭제했습니다.
|