어떻게 시스템 분류 에 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$