A Database Error Occurred
Error Number:
SELECT * FROM "customer" WHERE "C_NAME" = 'test'
제목 | 액티브 레코드 질문드립니다. | ||
---|---|---|---|
글쓴이 | 휴~한숨쟁이 | 작성시각 | 2009/11/19 16:58:06 |
|
|||
1.$query = $this->db->query("select * from ec_member where mem_id = '$mem_id'"); $cnt = $query->num_rows(); 2. $this->db->where('mem_id',$mem_id); $query = $this-> db->get('ec_member'); $cnt = $query->num_rows(); 1번 쿼리시에는 에러가 안나는데 2번 액티브 레코드 쿼리시 에러가 납니다. 원인은 $this->db->where('mem_id',$mem_id); $mem_id값을 ''로 감싸주지 못해서 나는듯 한데 저부분을 어떤식으로 써야 할지.. 답변주시면 감사하겠습니다. 에러코드 : Fatal error: Call to undefined method Member::_remove_invisible_characters() in D:\JH_Work\PHPProject\iweb\system\database\drivers\oci8\oci8_driver.php on line 378 환경은 1.7.2버전 explorer 7버전입니다. |
|||
다음글 | URL 입력시 No input file specifie... (16) | ||
이전글 | anchor에 onclick을 할 경우에 처리방법 질문 (4) | ||
헛발이
/
2009/11/19 17:33:35 /
추천
0
|
ci세상
/
2009/11/19 17:52:03 /
추천
0
현재 사용하시는 버젼 1.7.2 버젼이 아닙니다. 1.7.1 버젼에서 나온 버그입니다.
1.7.1의 경우에 378줄을 다음과 같이 수정하시면 해결되실것입니다. return $CI->input->_remove_invisible_characters($str); |
휴~한숨쟁이
/
2009/11/20 13:04:06 /
추천
0
버전이 1.7.2버전이 아니였나봅니다 그래두 해결은 아직..
1. 7.2 버전으로 교체 후 처음과 같은 액티브 레코드시 SELECT * FROM "ec_member" WHERE "mem_id" = 'afadf' 테이블명과 필드명에 쌍따옴표가 붙어서 나오네요;; 버그인건지... 한참 재미를 붙여서 열심히 이것저것 들여다 보는데 아직 실력이 부족해 내부를 고칠 실력은 없고 답변좀 부탁드립니다.. |
ci세상
/
2009/11/20 16:15:22 /
추천
0
|
byung82
/
2009/11/21 15:56:52 /
추천
0
버그가 아닙니다. " 붙으것들은 더 정확한 명칭을 위해서 사용됩니다.
일반적으로 테이블명 컬럼명이 대소문자 구분할경우 저렇게 사용됩니다. 조금씩 틀리지만 Postgresql일 경우 UserId 이렇게 정의시 "를 사용하지 않으면 userid = UserId 가 같습니다. 그래서 " 들어가는건 버그가 아닙니다. 일반쿼리 사용보다는 VIEW를 만들어서 CI도 View가 AR에 사용할수 있는지 모르겠지만 View + AR이 좋습니다. 그럼 |
ci세상
/
2009/11/22 12:53:34 /
추천
0
byung82 / 오라클에서 " 가 들어가면 오류로 인식할텐데요? |
byung82
/
2009/11/22 17:10:47 /
추천
0
흠 오라클은 " 오류로 인식하는건가여 흠. system command를 필드명으로 했을때 " 로 해서 생성하지 않는가여 ㅎㅎ
오라클쪽은 잘 안봐서 ^^: 한번 10g 깔아서 확인해봐야겠네여 ㅎㅎ |
ci세상
/
2009/11/22 18:57:39 /
추천
0
ci 엑티브 레코드가 모든 디비에 공용화는 좀 불가능해 보였습니다.^^
코어에 DB_active_rec.php 파일을 각 디비별로 분리해서 만드는것을 시도해 보고 있는데요 코어를 안거드리고 하는 방법이 현재로써는 마땅히 생기지를 않고 있네요;; |
byung82
/
2009/11/23 15:58:49 /
추천
0
흠
이렇게 변경은 어떤가여 $this->db->get_where( "ec_member", array( "mem_id" => $mem_id ) ); 이렇게도 한번 테스트 해보시기 바랍니다. |
ci세상
/
2009/11/23 17:03:20 /
추천
0
byung82 / 테이블명에 빽티 들어가는것이 문제인데요 요거 처리하는 방법을 올려주세요^^ |
byung82
/
2009/11/23 17:10:35 /
추천
0
ci세상님 $this->db->get_where( "ec_member", array( "mem_id" => $mem_id ) ); 이런씩으로 ar호출해도 같은 상태이신가여 ?
database는 extention을 사용하지못한다고 하니 직접 core를 수정하는수 말고는 없는데 $this->db->get_where( "ec_member", array( "mem_id" => $mem_id ) ); 이런 스타일로 해서 어떻게 되는지도 한번 결과 보여주세여 ㅎㅎ |
ci세상
/
2009/11/23 17:21:47 /
추천
0
테스트를 제가 해드리네요 ^^
function oracle_ar_select() { $mem_id = "test"; $this->DB2->get_where( "customer", array( "C_NAME" => $mem_id ) ); foreach ($query->result_array() as $row) { echo $row['C_NAME']; } }==> 오류 A Database Error OccurredError Number:
SELECT * FROM "customer" WHERE "C_NAME" = 'test' |
byung82
/
2009/11/23 17:44:00 /
추천
0
|
$query = $this-> db->get('ec_member');
여기에서 db 앞쪽에 공백이 있어요...
그리고 아마도 _id라면 숫자가 들어오기 때문에 따옴표와는 별루 상관 없을듯 싶구요..
꼭 따옴표를 써야 한다면
$this->db->where('mem_id','\''.$mem_id.'\'');
이렇게 해주면 되지 않을까요?