Sample Source
#include <mysql.h>
#include <stdio.h>
#include <stdlib.h>
// /usr/include/mysql/mysql.h
// /usr/lib64/mysql/libmysqlclient.so
const char *host = (char*)"아이피를적으세요";
const char *user = (char*)"아이디";
const char *pw = (char*)"비밀번호";
const char *db = (char*)"데이타베이스";
int main()
{
MYSQL *connection; // the connection
MYSQL_RES *sql_result; // the results
MYSQL_ROW sql_row; // the results row (line by line)
/*
* mysql_real_connect()함수에 맞는 MYSQL 오브젝트를 할당하고 초기화한다.
*/
connection = mysql_init(NULL);
/*
* MySQL 데이터베이스 연결.
* http://blog.naver.com/PostView.nhn?blogId=kjs077&logNo=10142084934
*/
if (mysql_real_connect(connection, host, user, pw, db, 3306, NULL, 0) == NULL)
{
printf("에러 : %d, %s\n", mysql_errno(connection), mysql_error(connection));
return 1;
}
else
{
printf("연결 성공\n");
if (mysql_select_db(connection, db)) // 데이터베이스 선택
{
printf("에러 : %d, %s\n", mysql_errno(connection), mysql_error(connection));
return 1;
}
char *query = (char*)"show tables";
int state = 0;
/*
* SQL 쿼리를 실행한다.
* http://blog.naver.com/PostView.nhn?blogId=leemgyunhyun&logNo=100104719095
*/
state = mysql_query(connection, query);
if(state == 0)
{
/*
* 클라이언트로의 쿼리 결과 전체를 읽고, MYSQL_RES 체계를 할당하며, 이 체계에 결과를 정돈한다.
* (Result Set 에 저장)
*/
sql_result = mysql_store_result(connection); //
/*
* 결과 값의 다음 로우를 검색한다.
* http://www.mysqlkorea.co.kr/sub.html?mcode=&scode=01&m_no=21792&cat1=22&cat2=596&cat3=606&lang=k
*/
while ((sql_row = mysql_fetch_row(sql_result)) != NULL) // Result Set 에서 1개씩 배열을 가져옴.
{
printf("%s\n", sql_row[0]);
}
/*
* result 지시자와 관련된 점유 메모리를 해제한다.
* http://radiocom.kunsan.ac.kr/lecture/php_mysql_api/mysql_free_result.html
*/
mysql_free_result(sql_result);
}
/*
* Mysql 서버와 연결을 종료해야 한다.
* http://bravoremi.tistory.com/entry/Mysql-%ED%95%A8%EC%88%98-mysqlclose-%ED%95%A8%EC%88%98
*/
mysql_close(connection);
}
return 0;
}
Compile
g++ -o DB_Test DB_Test.c -I/usr/include/mysql /usr/lib64/mysql/libmysqlclient.so
cs
[출처] [c] C/C++ 에서 MySQL 연동하기 Sample (MySQL Lib 이용)|작성자 tius1234