๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ํค๋ํ์ผ ๋ณด๊ธฐ
mysql_config --libs
include์ ํค๋ ํ์ผ๋ค, ์ปดํ์ผ๋ฌ ํ๋๊ทธ ๋ฐ ์ ์๊ฐ ํ์ธ
mysql_config --cflags
C ์ปดํ์ผํ๊ธฐ ์ํด ํค๋ ์ง์
gcc dbconn.c –o dbconn $(mysql_config –-cflags) $(mysql_config --libs)
์ ์์ ์ํ ์ ๋ณด ์ฝ๋
#include<stdio.h>
#include<errno.h>
#include<mysql.h>
#include<stdlib.h>
int main()
{
//MYSQL ๋ณ์ ์์ฑ
MYSQL mysql;
//MYSQL ๋ณ์ ์ด๊ธฐํ
mysql_init(&mysql);
//MYSQL์ ์ ์: ์ฑ๊ณตํ๋ฉด 1 ๋ฆฌํด, ์คํจํ๋ฉด 0 ๋ฆฌํด
if(!mysql_real_connect(&mysql,"localhost", user, password, dbname, 0, NULL, 0)) //user, password, dbname์ ์ฌ์ฉํ ๊ฒ
{
fprintf(stderr,"%s\n",mysql_error(&mysql)); //์ ์ ์คํจ ์ ํ์ค ์๋ฌ ์ถ๋ ฅ
exit(1);
}
printf("connect success!!!\n");
mysql_close(&mysql);
return 0;
}
MySQL C API
์๋ฃํ
MYSQL: ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฐ๊ฒฐ์ ๊ด๋ฆฌํ๋ ๊ตฌ์กฐ์ฒด
MYSQL_RES: ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด๋ ์๋ฃํ
MYSQL_ROW: MYSQL_RES์์ ํ๋์ ๋ ์ฝ๋์ฉ ๊ฐ์ ์ป์ด ์ฌ๋ ์ฐ์ด๋ ์๋ฃํ
MYSQL_FIELD: ํ๋์ ์ด๋ฆ๊ณผ ํ๋์ ํ์ ๋ฑ ํ๋์ ๊ดํ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ์๋ฃํ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ
MYSQL * mysql_init(MYSQL *mysql) //MYSQL ๊ฐ์ฒด๋ฅผ ์ด๊ธฐํ
void mysql_close(MYSQL *mysql) //๋ฐ์ดํฐ์ ์ฐ๊ฒฐ ๋๊ธฐ
//์ฟผ๋ฆฌ ์คํ
void mysql_close(MYSQL *mysql) //NULL ์ ๊น์ง ๊ฐ์ ธ์ด
int mysql_real_query(MYSQL *mysql, const char * query, unsigned int length) //๊ธธ์ด ์ง์ ํด ์ ํํ๊ฒ ๊ทธ ๊ฐ๋ง ๊ฐ์ ธ์ค๊ธฐ
//๊ฒฐ๊ณผ ๊ฐ์ ธ์ค๊ธฐ
MYSQL_RES * mysql_store_result(MYSQL *mysql) //ํ๋ฒ์ ์ ์ฒด row ๊ฐ์ ธ์ด
MYSQL_RES * mysql_use_result(MYSQL *mysql) //ํ๋ฒ์ ํ row ๊ฐ์ ธ์ด
MYSQL_ROW mysql_fetch_row(MYSQL_RES * result) //ํ ๊ฐ์ row ๊ฐ์ ธ์ด
์ฟผ๋ฆฌ ์ ๋ฐ์์ค๊ธฐ
๊ธฐ๋ณธ ๋ฉ์ธ์ผ๋ก์ ์์๊ณ ๋์ค์ ๋ค ํจ์๋ก ๋นผ์ ํ๋ ๊ฒ ์ข๋ค.
#include<stdio.h>
#include<stdlib.h>
#include<mysql.h>
#include<errno.h>
int main()
{
MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;
int fields,i;
//์ด๊ธฐํ
mysql_init(&mysql);
//๋ก๊ทธ์ธ
if(!mysql_real_connect(&mysql, "localhost", ์ฌ์ฉ์, ๋น๋ฐ๋ฒํธ, db์ด๋ฆ, 0, NULL, 0))
{
fprintf(stderr,"%s\n",mysql_error(&mysql));
exit(1);
}
//db ์ ์
if(mysql_query(&mysql,"use ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
"))
{
fprintf(stderr,"%s\n",mysql_error(&mysql));
exit(1);
}
//๋ช
๋ น
if(mysql_query(&mysql,"๋ช
๋ น")) //์: select * from book
{
fprintf(stderr,"%s\n",mysql_error(&mysql));
exit(1);
}
res = mysql_store_result(&mysql); //์ ์ฒด ๊ฒฐ๊ณผ ์ ์ฅ
fields = mysql_num_fields(res); //ํ๋ ๊ฐ์ ์ ์ฅ
while(row = mysql_fetch_row(res)) //๊ฒฐ๊ณผ์์ ํ ํ์ฉ ๊ฐ์ ธ์์ ํ๋ ๋จ์๋ก ์ถ๋ ฅ
{
for(i=0; i<fields; i++)
printf("%10s\t",row[i]);
printf("\n");
}
mysql_free_result(res); //ํฌ์ธํฐ๊ฐ ๊ฐ๋ฆฌํจ ๊ฒฐ๊ณผ ํด์
mysql_close(&mysql);
return 0;
}
–MYSQL_FIELD ๊ตฌ์กฐ์ฒด
•char *name : ํ๋์ ์ด๋ฆ
•char *table : ํ์ฌ ํ๋์ ํ
์ด๋ธ ์ด๋ฆ
•char *def : ํ๋์ ๊ธฐ๋ณธ๊ฐ
–MYSQL_FIELD * mysql_fetch_field(MYSQL_RES * result)
•ํ๋ฒ์ ํ๋์ MYSQL_FIELD๋ฅผ ๋ฆฌํด
–MYSQL_FIELD * mysql_fetch_fields(MYSQL_RES * result)
•๋ฐฐ์ด์ ํํ๋ก ๋ชจ๋ MYSQL_FIELD๋ฅผ ๋ฆฌํด
728x90
๋ฐ์ํ
0