http://www.mysqlkorea.co.kr
한글매뉴얼 5.0 , 한글매뉴얼 5.1 , MySQL 5.1 HA , 사용자매뉴얼
공지사항  
뉴스  
질문과 답변
DBA
Developer
Cluster
토크박스  
이벤트  
서포트 티켓  
최신글
mysql 관련해서 …
이제 날씨가 가을…
killed 상태가 너…
mysql 백업/복구 …
apm 설치 헤메고…
 
질문과 답변 (Developer) > 커뮤니티 존 > 질문과 답변 (Developer)
mysql 접속 문의(connection handle 가져오기 등등)
글쓴이 : 새힘   날짜 : 14-10-06 22:44   조회수 : 2542
안녕하세요~~~
문의 좀 드립니다.
제가 C로 PHP EXTENSION을 개발하여 PHP의 내부 함수를 만들었습니다.
그 PHP프로그램은 편의상 이름을 ext.php라고 하겠습니다.
그리고 ext.php에서는 제가 EXTENSION으로 개발한 ext_mysql(); 함수를 사용합니다.
이때 ext.php에서 mysql_connect(서버IP, 유저, 패스워드);로 먼저 접속을 합니다.
그리고 나서 ext_mysql();함수를 호출합니다.
----------------------------------------
<?
//program name : ext.php

$link = mysql_connect(서버ip, 유저, 비번);
~~
~~
ext_mysql();  // c로 구현한 php extension 함수

?>
-------------------------------------------
ext_mysql()함수는 C로 구현 했는데, 그 함수안에서 mysql 접속정보 확인이 필요하여
select user();를 query를 하거나 mysql_list_processes(link);를 합니다.
그런데 이걸 하려면 MYSQL C API는 mysql_real_connect(link, ...);로 재접속을 해야합니다.
그리니까 ext.php에서 mysql_thread_id()로 얻은 thread id와
ext_mysql()에서 thread id가 달라집니다. 재접속을 했으니 어쩌면 당연하겠지요...
하지만 PHP에서 $link=mysql_connect(arg..)는 한번 접속하면 밑에서
또 $link= mysql_connect(arg..)해도
동일 arg면 접속을 새로 하지 않고 $link(MYSQL connect handle)만 재반납합니다.
thread id도 당연 같겠죠...
제가 알고 싶은 것은 첫째, ext_mysql()에서 MYSQL C API를 사용할 때도 PHP의 $link=mysql_connect(arg ..);처럼 새로 재접속 하지 않고도 query를 할 수 있는 방법이 있는지?
둘째, MYSQL C API(ext_mysql())사용에서 PHP(ext.php)에서 connect한 $link를 가져오는 방법이
있는지?를 알고 싶습니다. MYSQL C API함수는 거의 모든 함수들이 $link를 함수 인자로 사용하기
때문에 새로 재접속을 하지 않을 수가 없네요ㅠㅠ.(예: mysql_query($link,$qy))
고수님들의 도움을 바랍니다.
이전글 다른 DB 의 같은 테이블 비교... 
다음글 스레드 내에서 LOAD DATA LOCAL INFILE 사용시 문제 
MySQL Korea 사이트의 컨텐츠 소유권은 (주)상상이비즈에 있으므로 무단전재를 금합니다.
ⓒ 2010-2011 ssebiz All Rights Reserved.