묻고답하기
영문, 한글이 안먹히네요.
2014.01.15 17:49
일단 위에 같은 시스템을 만들었습니다.
먼저 데이터베이스 구조
number(int)
값 : 1, 2
p_name(char)
값 : 1, abc
birth(int)
값 : 1989, 1990
이렇게 있습니다.
소스에 대한 구체적은 설명은 제외하고 일부분으로 설명드리겠습니다.
$fname = $_GET['name'];
먼저 입력란에 입력하면 fname 변수에 할당을 받습니다.
$query = "select* from 테이블명 where p_name = '$fname'";
그리고 이것을 $result 변수에 다시 받습니다.
입력란에 숫자, 문자, 한글을 할때 여기까지 모두 처리하는 듯 싶습니다.
echo로 할 때 숫자, 영어, 한글 모두 Resource id 가 나왔습니다.
while($data = mysql_fetch_array($result)){
이 부분이 문제인데요.
댓글 10
-
criuce
2014.01.15 18:27
-
화랑529
2014.01.15 18:29
입력값 abc 을 하고
echo $query; 할경우
select * from 테이블명 where p_name = 'abc' 이렇게 나와요
-
criuce
2014.01.15 18:35
말씀하신대로라면 쿼리에는 별 문제가 없는걸로 보이는데요...
변수 없이 직접 쿼리 날려보시면서 정상 동작하는지 확인해 보셔야 할 것 같아요.
-
화랑529
2014.01.15 18:38
저희쪽에서 확인해본 결과..
숫자에서는 문제가 없었고
문제는 띄어쓰기하나를 붙이고 문자를 입력해야 나오는 점을 보아서..
문자로 될때 맨앞에 띄어쓰기가 생성되는게 그점때문인거같습니다.
trim 등 적용하고 있는데도 안되네요.
-
criuce
2014.01.15 18:46
데이타베이스에 입력된 데이터에 공백문자가 들어가 있는건 아닐까요?
그렇지 않고서야 이상하거든요..;
-
화랑529
2014.01.15 18:58
헐.. 데이터베이스에서 띄어쓰기abc 이렇게 되어있었네요
근데.. 데이터베이스 입력하는 페이지도 있는데 거기서 띄어쓰지않고 입력하면 자동으로 씌어쓰기가 되어 입력됩니다
-
criuce
2014.01.15 19:02
데이터 입력하실때 trim으로 처리하고 하시면 될 것 같네요.
-
화랑529
2014.01.15 19:05
입력할때 아예 띄어쓰기가 있었네요 ㅠ 감사합니다.
단순한 문제인데... 하
-
criuce
2014.01.15 19:10
단순한 실수를 하지 않기 시작하면 진정 고수가 된 것이죠.
수고하세요~
-
화랑529
2014.01.16 09:36
그러네요 ㅠㅠ... 뭣도 아닌 코드 잘때 띄어쓰기 하나 넣었다고 몇시간을 잡아먹으니..
echo $query; 해서 쿼리문이 어떻게 찍히는지 살펴보세요.
그리고 문자열 안에 변수 넣으실 때는 {$fname} 이런식으로 중괄호로 감싸주셔야 예외없이 동작합니다.