#include <stdio.h>
#include <errno.h>
#include <mysql.h>
MYSQL mysql;
// 쿼리 질의를 한다
void sql_qur(char *sql_query)
{
printf("input sql query is %s\n", sql_query);
if( mysql_real_query(&mysql, sql_query, strlen(sql_query)) )
{
perror( mysql_error(&mysql) );
exit( 1 );
}
}
// 쿼리 질의로 온 결과를 모두 출력한다.
void sql_print_result(char *result)
{
MYSQL_RES *res;
MYSQL_ROW row;
MYSQL_FIELD *fld;
int fields;
if( !(res=mysql_store_result(&mysql)) )
{
perror( mysql_error(&mysql) );
exit( 1 );
}
sprintf(result, "");
while( (row=mysql_fetch_row(res)) )
{
int i;
for( i=0 ; i<mysql_num_fields(res) ; i++ )
{
fld = mysql_fetch_field_direct( res, i );
if(i == 0)
sprintf( result, "%s%20s: %s", result, fld->name, row[i] );
else
sprintf( result, "%s\n%20s: %s", result, fld->name, row[i] );
if( !strlen(row[i]) )
{
mysql_free_result(res);
mysql_close(&mysql);
exit(0);
}
}
sprintf( result, "%s\n\n", result );
}
mysql_free_result(res);
}
// 쿼리를 받음 단, 한줄에 한개의 쿼리가 찍힌다
void sql_get_result(char *result)
{
MYSQL_RES *res;
MYSQL_ROW row;
int line = 0;
if( !(res=mysql_store_result(&mysql)) )
{
perror( mysql_error(&mysql) );
exit( 1 );
}
sprintf(result, "");
while( (row=mysql_fetch_row(res)) )
{
int i;
for( i=0 ; i<mysql_num_fields(res) ; i++ )
{
if(i == 0 && line == 0)
sprintf( result, "%s", row[i] );
else
sprintf( result, "%s\n%s", result, row[i] );
if( !strlen(row[i]))
{
mysql_free_result(res);
mysql_close(&mysql);
exit(0);
}
}
++line;
}
result[strlen(result)] = '\0';
mysql_free_result(res);
}
void main(void)
{
char input_query[100];
mysql_init( &mysql );
if( !mysql_real_connect(&mysql,
"localhost", // host
"user", // user
"pw", // passwd
"db_name", // db
3306, // port
NULL,
0) )
{
perror( mysql_error(&mysql) );
exit( 1 );
}
// user 테이블을 출력한다.
sql_qur("select * from user;");
sql_print_result(&input_query);
printf("sql result %s\n", input_query);
// test01 ID에 대한 password 값을 구한다.
sql_qur("select password from user where ID='test01';");
sql_get_result(&input_query);
printf("sql result %s\n", input_query);
// 질의를 입력 받아서 그 결과를 계속 출력
while(1)
{
printf("input sql query! : ");
sql_qur(gets(input_query));
sql_get_result(&input_query);
printf("\nsql result %s\n", input_query);
}
mysql_close(&mysql);
}
'윈도우 서버에 대해서' 카테고리의 다른 글
윈도우 환경에서 MySql C 프로그래밍 세팅법 (0) | 2009.03.18 |
---|---|
이전에 만들던 게임서버 윈도우 버젼으로 컨버팅... (0) | 2009.02.01 |
MySQL C API (0) | 2008.06.19 |
VC++과 Mysql C Lib 연동하기 팁 (0) | 2008.06.19 |
ADO 헨들러... (0) | 2007.10.31 |