만들면서 배우는 CodeIgniter Q&A

제목 댓글 삭제 Ajax로 구현하기 오류
글쓴이 승희아빠 작성시각 2013/11/18 23:40:50
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 12377   RSS
Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE board_id = ''' at line 1

SELECT user_id FROM WHERE board_id = ''

Filename: D:\xampp\htdocs\bbs\system\database\DB_driver.php

Line Number: 330
쿼리 오류가 발생하여 해당 부분 쿼리가 있는 board_m.php 를 확인해 보니
/**
 * 게시물 작성자 아이디 반환
 *
 * @return String 작성자 아이디
 */
function writer_check()
{
 $table = $this->uri->segment(3);
 $board_id =$this->uri->segment(5);

 $sql = "SELECT user_id FROM ".$table." WHERE board_id = '".$board_id."'";
 $query = $this->db->query($sql);

 return $query->row();
}
view_v.php에서
sendRequest("/bbs/ajax_board/ajax_comment_delete", name, delete_action, "POST");
세번째, 다섯번째 파라미터 정의가 되어 있지 않아 생긴 오류였습니다.

그리고 ajax_board.php 에서
// 글 작성자가 본인인지 검증
$writer_id = $this->board_m->writer_check($table, $board_id);
writer_check 메소드에 2개의 파라미터가 있더군요.  파라미터 받는 부분이 없었는데 하고

내려 받은 소스를 확인해 보니
function writer_check($table, $board_id)
{
 $sql = "SELECT user_id FROM ".$table." WHERE board_id = '".$board_id."'";

 $query = $this->db->query($sql);

 return $query->row();
}
파라미터를 받는 걸로 되어 있더군요.

p228 에 ① 컨트롤러에서 $table과 $board_id를 넘겨도 되자만

모델에서도 $this->uri->segment()를 사용할 수 있는 것을 보여주기 위해 모델에서 선언했습니다.

라고 되어 있어 변경된 소스가 원래 의도 하신 소스라 생각합니다.

p274 에 변경된 소스 적용되어 있는거 확인했습니다.

삽질방지 차원에서 글 남깁니다.










 다음글 p288 $.cookie 안되네요. (5)
 이전글 p250 오탈자 변경요. (6)

댓글

변종원(웅파) / 2013/11/19 21:20:03 / 추천 0
책이 진행됨에 따라 소스가 바뀌면서 생긴 현상이네요. 체크를 하지 못해서 죄송합니다.

기존 방식 ajax를 만들고 jquery 방식으로 만들면서 수정되지 못한 부분이 그대로 책에... T.T