MySql을 실제로 사용 중 mysql_num_rows() 을 통해 값을 가져와서

그 크기 만큼 vector size나 메모리 alloc을 해야 하는 경우가 있었다.

그런데 실제 쿼리로는 되는데  mysql_num_rows() 는 0으로 나오는 현상이 간혹 생겨서 검색해보니

아래와 같은 내용이 있었다.

 

1. mysql_num_rows는 용도가 insert문 이나 update문 delete문을 사용한 후 적용된 rows갯수를 구하는 것입니다. select문에서 사용하신것이 아닌가 생각이 됩니다.

 

2. mysql은 실제 적용된 로우의 개수를 리턴한다고 합니다. 그래서, 해당 로우가 있는데도 0으로 나오는 경우가 발생하기도 하구요. mysql 접속할때 CLIENT_FOUND_ROWS 옵션 주고 해보시면 원하는 결과가 나올것 같습니다

 

관련 링크 : 

http://database.sarang.net/?inc=read&aid=25543&criteria=mysql&subcrit=&id=&limit=20&keyword=procedure&page=3

 

select 문에서 두루 사용되고 mysql_store_result()문 후에 사용했었던 터라

-mysql_num_rows()은 mysql_store_result()후에 사용하는 것으로 나와있다.- 

2.번이 해결책이 될 듯 싶었으나.........

 

같은 현상이 일어나는 듯....

 

select 가 문제가 아니라, 기전 insert에서 auto commit 옵션을 off 후, insert & commit 진행, auto commit on 변경 후

아직까진 문제가 없다.

 

auto commit인 경우 아무래도 insert data가 좀 많아서 실제 쿼리 돌려보면 되는데, api로  select 하게 되면 api 단에서 문제가 있는 것이 아닐까 하는 생각을 해본다.

 

 

 

+ Recent posts