php 문자셋 varchar 한글비교시 2자만인식됨니다. 채택완료
각각 다른 테이블열에 있는 한글 이름을 비교 하는데
A테이블 열에 홍길동 과 B테이블에 홍길동이 같을시
업데이트 구문 입니다.
길동 길동은 인식이 되는데
홍길동 홍길동 3글자는 인식이 안됨니다.
열타입 varchar (20) 이고요 varchar (255) 도 해밨는데 동일합니다..
혹시 몰라서 int 로 변경하니 5글자까지 인식되는데
int는 그후 숫자0으로 변경되어버리네요..
열타입 text 로 2글자까지만 인식됨니다.
3글짜 이상 되게 할수 없을까요 ?
답변 6개
쪽지 사용이 안 되어서...
update T_Point set Point=Point+'' Where AccountID = '' and ''=''
query문이 이렇게 나온 거라면
$query8 = 'update T_InShop_Point
set WinP=WinP+\''.$sql222['bokgo_Money'].'\'
Where \''.$sql222['name'].'\'= \''.$sql225['mb_profile'].'\' ';
$rg8 = mssql_query($query8);
여기서
$sql222,$sql225 query 결과가 제대로 나오지 않은 듯합니다.
각각 query문 실행 다음에
print_r( $sql222);
print_r( $sql225);
하셔서 결과 값을 먼저 확인하세요.
댓글을 작성하려면 로그인이 필요합니다.
프로필에 있는 한글을 못읽어 드리는 문제네요 .
mb_profile 에 한글이 있으면 못읽어 드리네요
댓글을 작성하려면 로그인이 필요합니다.
쿼리문을 만들때 다음처럼 하면 될텐데 일부러 복잡하게 만드는 모양새군요 ㅋ
$query8 ="update T_InShop_Point
set WinP=WinP+ '{$sql222['bokgo_Money']}'
Where '{$sql222['name']}' = '{$sql225['mb_profile']}' ";
그런데 이 쿼리문이 where절이 도대체 성립하는 구문이 아닙니다
아래처럼 필드명이 나오고 문자열과 같은지 비교를 해야하는데....
Where mb_profile = '{$sql225['mb_profile']}' ";
두개의 문자열이 같으면 어느 레코드를 update시킨다는 말인가요?
말이 안되는 구문이니 실행이 될리가 없어요
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
$query8 = 'update T_InShop_Point
set WinP=WinP+\''.$sql222['bokgo_Money'].'\'
Where \''.$sql222['name'].'\'= \''.$sql225['mb_profile'].'\' ';
$rg8 = mssql_query($query8);
이 중에서 Where \''.$sql222['name'].'\'= \''.$sql225['mb_profile'].'\' '; 부분에서
Where 필드명=값 으로 대상을 지정하는데,
길동=길동, 길동이=길동이, 홍길동=홍길동 처럼 비교하면 뭔 의미가 있나 싶군요.
답변에 대한 댓글 2개
mb_profile 열에 한글2자 예)길동
이 있을시
mssql 테이블 T_InShop_Point 열 WinP에 업데이트 입니다.
위에
name 열에 한글3자가 있을시 예)홍길동
mb_profile 열에 한글3자가 있을시 예)홍길동
이렇게 3글자면
업데이트가 안되는 오류 입니다.
WHERE 필드명='값' 조건이 되어야 한단 말이었습니다. 예) WHERE name='길동'
댓글을 작성하려면 로그인이 필요합니다.
무슨 말씀이신지 잘 이해가안되는데
일단 문자열의 경우에는 int로 사용하시면 안되시고
문자열 필드는 varchar(255)로 보통 많이들 사용하시구요
이름을 비교하는 쿼리를 어떻게 하셨는지 예시가 필요합니다.
실제 데이터가 A, B 각각의 필드에 '홍길동' 이라고 데이터가 있다면
검색이 되야 맞습니다.
데이터안의 내용이 '홍길동' 이렇게 단일 값이 아니라
'홍길동2' 'a홍길동' 이런식의 이름이라면 like 로 검색 조건을 다르게 하셔야합니다.
답변에 대한 댓글 2개
$sql5 = ("select mb_signature,mb_hp,mb_profile from {$g5['member_table']} where mb_id = '{$sql222['mb_id']}' ");
$sql25= sql_query($sql5);
$sql225 = sql_fetch_array($sql25);
$query8 = 'update T_InShop_Point
set WinP=WinP+\''.$sql222['bokgo_Money'].'\'
Where \''.$sql222['name'].'\'= \''.$sql225['mb_profile'].'\' ';
$rg8 = mssql_query($query8);
이렇게 했습니다.
열에 이름을 길동=길동 하니 되고요
이름을 3글자 길동이 =길동이 홍길동=홍길동
이런식으로 2글자 넘으면 안되네요 ..
utf-8 이고요 이름을 2자로 하면 적용됨니다. 3글자 넘어서는 안되고요
varchar(255) 이고요
댓글을 작성하려면 로그인이 필요합니다.
1. db에 데이터가 제대로 들어갔는지 채크.
2. 업데이트 구문 확인.
3. 업데이트시 캐릭터셋 확인.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
한글이 3글자면 안되더라고요