1

주제: 카테고리 추가가 안 됩니다.

음.. 얼마 전에 태터 1.0.4를 쓰시는 동아리 선배가 버그리포팅한 것인데, 제가 localhost에 설치한 태터 1.0.5 개발 버전도 똑같은 현상이 일어납니다.

카테고리에 아무것도 없는 상태인데, '분류를 관리합니다' 메뉴에서 생성 입력란에 이름을 쓰고 추가를 눌러도 카테고리가 전혀 생성되지 않는군요.

티켓으로 등록해야 할 것 같은데, 혹시 같은 현상을 겪으신 분 있나요?

ps. 참고로 전 접속을 127.0.0.1로 하고 태터 환경설정에서 도메인도 바꿔두었습니다.

ps2. 코멘트, 트랙백도 안 달리는군요. (이건 개발 과정에서 발생한 일시적 버그는 아니겠죠?)

ps3. 스킨 선택하는 화면에서 스킨 정보 중 한글이 전부 ???로 나옵니다. -_-;

daybreaker (2006-04-21 13:12:16)에 의해 마지막으로 수정

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.

2

답글: 카테고리 추가가 안 됩니다.

트랙백, 코멘트는 모르겠고 카테고리의 경우 1.0.2로 업그레이드할 때 동일한 문제를 겪었습니다. 지금과 같은 문제인지는 모르겠으나 SQL 쿼리와 DB 필드가 일치하지 않더군요. 수동으로 필드를 수정해서 문제를 해결했습니다. daybreaker님 문제도 이것과 관련이 있을지 모르겠군요.

graphittie (2006-04-21 13:13:34)에 의해 마지막으로 수정

3

답글: 카테고리 추가가 안 됩니다.

음.. 조금 전에 확인해보았는데, lib/model/category.php에 있는 AddCategory 함수에 있는 sql 쿼리 내용과 실제 db 필드 이름들은 모두 일치하고 있습니다. 그 문제는 아닌 것 같네요.

시간 나는대로 디버깅을 해봐야겠습니다.

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.

4

답글: 카테고리 추가가 안 됩니다.

저도 테스트 해봤는데요 Local에서 윈도우 아파치  설치한건 카테고리가 생성되지 않았습니다.
Web에서 생성한건 문제가 발생하지 않았고요
테스트해본건 sandBox의 r29를 가지고 테스트 했습니다.
혹시나 해서 웹계정에 새롭게 받은 파일을 올려서 설치해보고 문제가 있는지 테스트 해보겠습니다.

http://multi.ghj.pe.kr에 모든 파일을 삭제하고 다시 r29를 가지고 다시 설치를 했습니다.
문제 없이 생성이 잘되군요..

addCategory함수에서 별다른 문제점은 발견이 되지 않는데 왜 로컬에서는 생성이 안되고
웹에서는 생성이 잘되지 다시 한번 봐야 겠네요^^

webthink (2006-04-22 23:55:50)에 의해 마지막으로 수정

5

답글: 카테고리 추가가 안 됩니다.

원인은 MYSQL버젼에 따른 INSERT 구문의 오류입니다.

INSERT INTO dev_Categories (owner, id, parent, name, priority, entries, entriesInLogin, label) VALUES (1, '', NULL, '123', 1, 0, 0, '123');

mysql TOOL로 문장을 실행시키니 아래와 같은 메세지자 나오는군요.

Out of range value adjusted for column 'id' at row 1

id값이 integer 형인데 '' char형태의 값이 들어가서 발생하는 오류 같군요.
이전에는 문제가 없었는데 왜그렇지?
자료를 찾았습니다.

로컬에서는 MYSQL 5.0.20에서 실행됩니다..
웹에서는 MUSQL 5.0.18이구요 버전상의 문제는 아닌것 같고

로컬의 my.ini설정에 아래와 같은 구문이 있더군요.

# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

아래와 같이 주석처리하고 MYSQL을 리스타트 하면 문제가 발생하지
않았습니다.

# sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

MYSQL.COM 들어가서 sql-mode 메뉴얼을 보니 데이터형을 비교해서 잘못들어온 데이터를
엄격히 관리함에 따라 integer로 정의되어 있는데 char값이 들어오니 오류가 발생
했겠죠. 설정할수 있는게 많네요.
보다 자세한 사항은 아래 URL을 참고하시구요.

http://dev.mysql.com/doc/refman/5.0/en/ … -mode.html


참고로

NO_AUTO_CREATE_USER

이구문이 들어 있어서 아래와 같은 사용자 생성 스크립트가 먹지를 않더라구요.

CREATE DATABASE multi;
GRANT ALL PRIVILEGES ON multi.* TO multi@localhost;
UPDATE user SET password = password('multi') WHERE user = 'multi';
flush privileges;

주석처리하고 나니 명령어가 실행이 되는군요.

ORACLE에서는 자료형을 따지니까 int형일때는 '를 입력하지 않고 null일때는
0으로 처리해서 자료를 넣었습니다. MYSQL에서는 소홀했는데 이제 점점더 까다로워
지네요^^

갑자기 PHP의 register_global 이 생각나네요 요즘은 off해놓고 코딩하는게 습관이
되었습니다.

버그라고 해야할지 셋팅상의 문제라고 해야할지^^

webthink (2006-04-23 00:33:07)에 의해 마지막으로 수정

6

답글: 카테고리 추가가 안 됩니다.

일단 NULL값으로 넣도록 수정해서  commit하였습니다.

찾으려고 하면 strict하지 않은 부분이 많겠군요. smile

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'

7

답글: 카테고리 추가가 안 됩니다.

webthink 작성:

원인은 MYSQL버젼에 따른 INSERT 구문의 오류입니다.

INSERT INTO dev_Categories (owner, id, parent, name, priority, entries, entriesInLogin, label) VALUES (1, '', NULL, '123', 1, 0, 0, '123');

mysql TOOL로 문장을 실행시키니 아래와 같은 메세지자 나오는군요.

Out of range value adjusted for column 'id' at row 1

id값이 integer 형인데 '' char형태의 값이 들어가서 발생하는 오류 같군요.
이전에는 문제가 없었는데 왜그렇지?
자료를 찾았습니다.

로컬에서는 MYSQL 5.0.20에서 실행됩니다..
웹에서는 MUSQL 5.0.18이구요 버전상의 문제는 아닌것 같고

로컬의 my.ini설정에 아래와 같은 구문이 있더군요.

# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

아래와 같이 주석처리하고 MYSQL을 리스타트 하면 문제가 발생하지
않았습니다.

# sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

MYSQL.COM 들어가서 sql-mode 메뉴얼을 보니 데이터형을 비교해서 잘못들어온 데이터를
엄격히 관리함에 따라 integer로 정의되어 있는데 char값이 들어오니 오류가 발생
했겠죠. 설정할수 있는게 많네요.
보다 자세한 사항은 아래 URL을 참고하시구요.

http://dev.mysql.com/doc/refman/5.0/en/ … -mode.html


참고로

NO_AUTO_CREATE_USER

이구문이 들어 있어서 아래와 같은 사용자 생성 스크립트가 먹지를 않더라구요.

CREATE DATABASE multi;
GRANT ALL PRIVILEGES ON multi.* TO multi@localhost;
UPDATE user SET password = password('multi') WHERE user = 'multi';
flush privileges;

주석처리하고 나니 명령어가 실행이 되는군요.

ORACLE에서는 자료형을 따지니까 int형일때는 '를 입력하지 않고 null일때는
0으로 처리해서 자료를 넣었습니다. MYSQL에서는 소홀했는데 이제 점점더 까다로워
지네요^^

갑자기 PHP의 register_global 이 생각나네요 요즘은 off해놓고 코딩하는게 습관이
되었습니다.

버그라고 해야할지 셋팅상의 문제라고 해야할지^^

와 그래도 정말 대단하시군요 ^^^ 이런것을 찾아내시다닝 ~

8

답글: 카테고리 추가가 안 됩니다.

제 테스트환경에 저 옵션들 다 켜놔야 겠음다 +.+