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);
하셔서 결과 값을 먼저 확인하세요.
댓글을 작성하려면 로그인이 필요합니다.
댓글을 작성하려면 로그인이 필요합니다.
쿼리문을 만들때 다음처럼 하면 될텐데 일부러 복잡하게 만드는 모양새군요 ㅋ
$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개
댓글을 작성하려면 로그인이 필요합니다.
</p>
<p>$query8 = 'update T_InShop_Point
set WinP=WinP+\''.$sql222['bokgo_Money'].'\'
Where \''.$sql222['name'].'\'= \''.$sql225['mb_profile'].'\' ';
$rg8 = mssql_query($query8);</p>
<p>
이 중에서 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) 이고요
echo $query8;
결과를 보여 주세요.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
한글이 3글자면 안되더라고요