안녕하세요?
Coontact Form 7에서 제출한 정보를 케이보드에도 등록되도록 코드를 작성했습니다.
이 코드가 여러 웹호스팅 서버에서 잘 작동하는데요,
유독 두 군데(동일하게 카페24 웹호스팅)에서 제대로 작동하지 않네요. (그런데 다른 카페24 웹호스팅 서버에서는 잘 작동하고요.)
코드는
$table_name = $wpdb->prefix . "kboard_board_content";
$wpdb->insert( $table_name, array( 'board_id' => 1, 'member_display' => $yourname, 'password' => 12345, 'title' => $formtitle, 'content' => $main_content, ...
이런 식인데요.
$str = htmlspecialchars( $wpdb->last_result, ENT_QUOTES ); $query = htmlspecialchars( $wpdb->last_query, ENT_QUOTES ); $message = "
WordPress database error: [$str]$query
";
위의 코드를 사용하여 오류 메시지를 이메일로 받아보면
WordPress database error: [] SHOW FULL COLUMNS FROM `wwwkboard_board_content`
위와 같은 메시지가 출력됩니다. (별 문제는 없는 것 같습니다.)
위와 같은 코드를 $wpdb->insert 다음에 추가하여 그 내용을 이메일로 받아보니
위와 같이 별 오류는 없는 것 같습니다(위의 메시지가 정상인지는 모르겠네요).
(현재 테이블 프리픽스는 'www'로 되어 있습니다.)
이런 경우 어떤 부분을 체크해보아야 원인을 확인할 수 있을까요?
(플러그인 충돌이 의심되어 살펴봤는데, 그쪽 문제는 아닌 것 같습니다. 그리고 Contact Form 7 액션 후크도 정상적으로 작동하는 것으로 보입니다.)
우선 말씀드리자면 KBoard쪽의 문제는 아닌것 같습니다.
호스팅에서 안된다면 서버 버전, 워드프레스 버전등 이류로 $wpdb->insert 이게 동작이 안되는경우일 수 있습니다.
또한 아래처럼 %s, %d 등 데이터 형식 파라메터도 추가해주세요.
$wpdb->insert(
'table',
array(
'column1' => 'value1',
'column2' => 123
),
array(
'%s',
'%d'
)
);
하지만, 확실한 원인은 올려주신 정보로는 모르겠습니다..;;
$wpdb->query("INSERT INTO `$table_name` (`board_id`, `member_display`) VALUE ('1', '$yourname')");
이런식으로 직접 쿼리를 작성해서 시도 해보세요.
echo "INSERT INTO `$table_name` (`board_id`, `member_display`) VALUE ('1', '$yourname')";
또 완성된 쿼리를 출력해서 phpMyAdmin에 접속해서 똑같은 쿼리를 입력해보세요.
phpMyAdmin에서 해당 쿼리에 문제가 있다면 좀 더 자세한 내용을 출력해줍니다.
답변 너무 감사합니다.
직접 쿼리를 작성해서 시도해봐야 하겠네요.