라고 확인했는데, 사전에 등록되어있지 않으면 쓸수 없는건가요.

 

Schema에 table.xml이 있는데 거길 더 추가하면 더 저장할수는 없는건가요?

  • profile

    modules/모듈명/schemas 폴더 안에 테이블마다 하나씩 xml 파일을 만들어 넣으시면 됩니다. 파일을 만들어 넣고 나서 관리자 화면에 들어가면 테이블을 생성하라는 단추가 뜰 거예요. 그걸 클릭하면 앞으로 해당 테이블을 자유롭게 사용하실 수 있습니다. (공홈 자료실에서 모듈을 다운받아 설치하면 이 과정이 모두 자동으로 이루어집니다.)

  • profile ?
    테이블마다 하나씩 xml 파일을 만들어 넣으시면 됩니다. 라고 했는데,
    이 말이 이해가 잘 안갑니다. xml만 만들라고 하는건지, 아니면 안에 테이블마다 column을 하나씩 다 넣어야된다는건가요..?
  • ? profile
    https://github.com/xpressengine/xe-core/tree/master/modules/comment/schemas
    이런 식으로 만들면 됩니다.
  • profile ?
    schemas에 넣고 php에서 getcontent or getcontenttext 등을 써야지만 db에 등록이 되나요?..
  • ? profile
    테이블을 새로 추가했다면 queries 폴더에 그 테이블에 데이터를 저장하는 쿼리를 작성해야 합니다. (이미 있는 테이블에 컬럼만 추가했다면 아무 것도 되지 않습니다.)

    getContent, getContentText 등의 함수는 이름 그대로 "get"(데이터를 불러오는 함수)이기 때문에 DB에 뭔가를 저장하는 것과는 아주 거리가 멉니다.
  • profile ?
    쿼리에도 똑같이 추가를 했는데, Unknown column 'video_path' in 'field list' 이렇게 뜹니다. 혹시 이런 오류를 보신적 있으신가요?
  • ? profile
    xml 말고 실제로 DB에 있는 테이블에도 video_path 컬럼이 추가되었나요?
  • profile ?
    아니요.. 실제 DB는 만질줄을 몰라서 안넣었습니다. schemas에 있는 db에 넣고,
    queries를 만지니까 이렇게 떠버리네요 흠..
  • ? profile

    실제 DB에 컬럼이 없다면 계속 에러날 거예요. 위에서 말씀드린 것처럼 xml 파일을 아예 새로 만들면 XE에서 자동으로 인식하고 테이블을 만들어 주지만, 컬럼만 추가하려면 수동으로 해야 하거든요.

  • ?
    스키마 정보를 명확하게 명시해야 하는 이유는, XML 쿼리를 실행할 때 이게 칼럼인지 데이터인지 명확하게 알 수 없기 때문입니다. 특히나, 이게 똥인지 된장인지 구분 못 하면 악성 스크립트를 서버에서 실행할 수 있기 때문이죠.

    사실, DB에 접속해서 쿼리 날려주면 테이블 정보를 알 수 있긴 한데, 각 DBMS마다 지원여부가 다르고, 매 번 쿼리를 날리는 것도 비효율적이기 때문에 하지 않는 것이죠.