Extra Form
PHP PHP 8.0
CMS Rhymix 2.0

글을 쓰고 등록버튼을 누르면 나타나는 증상입니다.

 

PHP 8.0으로 어렵사리 변경을 했는데 넘어야할 산이 많군요.

개인적으로 4개의 모듈과 또 몇개의 애드온을 제작해서 사용하고 있지만 reward_point 같은 변수를 사용한 것은 없습니다.

어디서 reward_point 라는 항목이 사용되는지 열심히 뒤져보는데 안나타나는군요.

:

K-168.png

서버를 php 8.0으로 이전했는데 같은 서버에 들어있는 총 5개의 홈페이지중 여기만 짧은주소가 안되고 글쓰기가 저모양입니다.

  • profile
    라이믹스의 디버그 기능을 사용하면 어느 파일에서 쿼리 에러가 나는지 확인할 수 있습니다. 그 파일이 포함된 모듈이나 애드온을 집중적으로 뒤져보면 되겠지요.
  • profile profile

    04. INSERT INTO `xe_documents` SET `document_srl` = ?, `module_srl` = ?, `category_srl` = ?, `lang_code` = ?, `is_notice` = ?, `title` = ?, `title_bold` = ?, `title_color` = ?, `content` = ?, `readed_count` = ?, `blamed_count` = ?, `voted_count` = ?, `comment_count` = ?, `trackback_count` = ?, `uploaded_count` = ?, `nick_name` = ?, `member_srl` = ?, `user_id` = ?, `user_name` = ?, `email_address` = ?, `homepage` = ?, `extra_vars` = ?, `regdate` = ?, `last_update` = ?, `ipaddress` = ?, `list_order` = ?, `update_order` = ?, `allow_trackback` = ?, `notify_message` = ?, `status` = ?, `comment_status` = ?
        - Caller:      modules/document/document.controller.php line 685 (documentController->insertDocument)
        - Connection:  master
        - Query ID:    document.insertDocument
        - Query Time:  0.0001 sec
        - Result:      SQLSTATE[HY000]: General error: 1364 Field 'reward_point' doesn't have a default value

  • profile

    function insertDocument()에서 쿼리직전에...

    $obj->reward_point = 0;
    $obj->reward_srl = 0;
    추가하고
    queries/insertDocument.xml에도
    <column name="reward_point" var="reward_point" />

    <column name="reward_srl" var="reward_srl" />
    를 추가해서 일단을 해결했는데 10년넘게 아무 이상 없던 것이 왜 이게 이 사이트에서만 갑자기 뜬금없이 나타나는지 잘 모르겠습니다.

     

    document table에 SCHEMA에는 없는 이상엉뚱한 컬럼이 들어있군요. 헐~~

    | reward_point               | bigint(11)   | NO   |     | NULL    |       |
    | reward_srl                 | bigint(11)   | NO   | MUL | NULL    |       |
    ALTER TABLE `xe_documents` DROP `reward_srl`;

    ALTER TABLE `xe_documents` DROP `reward_point`;
    로 해결했습니다.

     

    관심을 가져주셔서 감사합니다.

  • profile profile
    기억이 가물가물한데, Board EX나 Board DX 모듈에서 임의로 추가한 칼럼인 것으로 알고 있습니다.
  • profile profile
    잠깐 테스트만하고 지웠느데 그게여태 남아있다가 php8.0때문에 나타나는군요. ..ㅎㅎ
  • profile profile
    PHP 8.0과는 상관없고, 해당 컬럼에 기본값이 없어서 그런 것 같네요