dmysql 자체 봉 인 된 mysql 라 이브 러 리

어떻게 시스템 분류 에 CGI 가 없어 요?최근 오 랜 만 에 오리지널 글 을 올 렸 습 니 다.서버 를 구축 하고 CGI 프로그램 을 만 드 는 데 며칠 이 걸 렸 습 니 다.나중에 스 크 립 트 언어,특히 우 X 의 정규 표현 식 에 대해 잘 모 르 겠 습 니 다.나중에 C 언어 로 효율 적 인 라 이브 러 리 를 쓰 겠 습 니 다.어쨌든 저 는 C 라 이브 러 리 를 많이 썼 습 니 다.다음은 my sql 라 이브 러 리 를 붙 였 습 니 다.dmysql 압축 을 풀 고 make 라 고 합 니 다. ; make install 설치 후 컴 파일 러 를 할 때 dmysql.h 헤더 파일 을 포함 합 니 다. -ldmysql 표 지 는 머 릿 속 에 mysql 데이터베이스 의 구조 체,typedef 를 정의 할 수 있 습 니 다. struct _dmysql_info {      char *host; /*host for database*/      char *user; /*user name for database*/      char *pswd; /*password to the account*/      char *dbbs; /*name of database*/ } dmysql_info; 기록 집합 데이터 형식 type:def struct _dmysql_record {      char *s_str; } dmysql_record; typedef struct _dmysql_row {      dmysql_record *s_record; } dmysql_row; typedef struct _d_mysql_res {      int row;      int field;      dmysql_row *s_row; } dmysql_res; 그리고 프로그램 이 실 행 될 때 오류 코드\#define DMYSQL_QUERY_OKAY 0 #define DMYSQL_SELECT_OKAY 0 #define DMYSQL_CONNECT_ERROR -1 #define DMYSQL_INIT_ERROR -2 #define DMYSQL_QUERY_ERROR -3 #define DMYSQL_RES_ERROR -4 프로그램 모두 3 개 함수 extern int dmysql_query( const char * s_query, const dmysql_info mysql_info ); UPDATE,INSERT 등 실 행 된 SQL 명령 을 주 고 데이터 베 이 스 를 지정 하면 extern 입 니 다. int dmysql_select( dmysql_res **rel_res, const char *s_select, const dmysql_info mysql_info ); 데이터베이스 기록 집합 주 소 를 입력 하고 SELECT 에 기 록 된 SQL 명령 을 내 리 며 데이터 베 이 스 를 만 들 면 메모리 에 스 택 에 명 시 된 기록 집합 공간 extern 을 방출 할 수 있 습 니 다. void dmysql_free( dmysql_res *res ); 다음은 프 리 젠 테 이 션 프로그램 코드 입 니 다:\#include  #include  int main( void ) {     dmysql_info db;     db.host="127.0.0.1"; /*host for database*/     db.user="root"; /*user name for database*/     db.pswd=""; /*password to the account*/     db.dbbs="mysql"; /*name of database*/     char *s_query="GRANT ALL ON *.* to 'dorainm'@'127.0.0.1' IDENTIFIED BY '******';";     char *s_sql="SELECT `user`,`host`,`password` FROM `user`;";     int i, j;     dmysql_res *res;     dmysql_query( s_query, db );     printf( "select out : %d", dmysql_select( &res, s_sql, db ) );     for( i=0; irow; i++ )     {         for( j=0; jfield; j++ )         {             printf("%s\t", ((res->s_row+i)->s_record+j)->s_str );         }         printf( "" );     }     dmysql_free( res );     return 0; };   make 테스트 후 실행./dmysqldorainm@desktop:~/workroom/c/mylib/dmysql$ make test gcc -Wall -O3 -o dmysql main.c -ldmysql `mysql_config --libs` `mysql_config --cflags` dorainm@desktop:~/workroom/c/mylib/dmysql$ ./dmysql select out : 5 root localhost %^$#!@%*&! root desktop.dorainm.org %^$#!@%*&!   desktop.dorainm.org %^$#!@%*&!   localhost %^$#!@%*&! dorainm 127.0.0.1 %^$#!@%*&! dorainm@desktop:~/workroom/c/mylib/dmysql$

좋은 웹페이지 즐겨찾기