참고 :
http://zetcode.com/tutorials/mysqlcapitutorial/ 영어 예제
http://koronaii.tistory.com/194 한글 예제
http://dev.mysql.com/doc/refman/5.6/en/c.html 공식 사이트 영어 API 메뉴얼
mysql client library 설치 (centos 6.2 64bit) |
yum install mysql-libs |
GCC 옵션 (centos 6.2 64bit) |
gcc -lmysqlclient -L/usr/lib64/mysql -I/usr/include/mysql |
MYSQL 연결 (에러처리 따윈 없다.) |
순서 : |
#include<mysql.h> mysql_query(&mysql,"create database test"); //test 란 데이터베이스 생성 |
host : database server 가 실행되고 있는 IP, HOSTNAME. NULL 이면 localhost |
select 해보기 |
순서 : |
#include<mysql.h>
mysql_init(&mysql); //mysql 초기화 mysql_query(&mysql,"use test"); //test 란 데이터베이스 사용 //mysql_select_db() 도 같은 역활 |
mysql_store_result() 와 mysql_fetch_row() 만 잘 쓰면된다. mysql_query() 에서 출력 결과가 있다면 mysql_fetch_row() 를 사용하면 되고 insert 나 create , delete 같은 경우는 mysql_query()의 반환값만 확인하면 된다. |
mysql error 처리법 |
mysql_error() , mysql_errno() 활용 |
#include<mysql.h> #include<stdlib.h> if(mysql_query(&mysql,"create database test") <0) // 반환이 0보다 작다면 에러 발생 |
리눅스의 perror() , errno 와 사용법이 같다. |
Multiple statements (다수 sql) |
#include<stdlib.h> mysql_query(&mysql, "DROP TABLE IF EXISTS test_table;\ }while(mysql_next_result(&mysql)==0); // 명시적으로 하나의 statements 실행시킨다. mysql_close(&mysql); |
다수의 sql 문을 실행시키는 것이다. |
Transaction (트랜잭션) |
우선사항 : mysql 이 transaction 을 지원하는 엔진을 가지고 있어야하며 작업하는 테이블의 타입이 transaction을 지원하는 타입이어야한다. transaction을 지원하는 엔진으로는 innoDB가 있다. 설정법은 아래를 참고하라. 방법 2. autocommit 옵션을 끄고 mysql_query() 후에 수행이 완벽하면 mysql_commit() 호출하여 저장 하면되고 수행이 완벽하지 않으면 mysql_rollback() 호출하여 복구하면 된다. 방법 3. mysql_query("BEGIN") 후에 실행시킬 sql문을 수행후 수행이 완벽하면 mysql_query("COMMIT") 수행이 완벽하지 못하면 mysql_query("ROLLBACK") 하면된다. 참고 : http://www.yolinux.com/TUTORIALS/MySQL-InnoDb-Transactions-ForeignKeys.html |
에러 처리도 없고 아주 간단한 예제를 보였다. 대충 느낌이 왔으면 다른 예제나 메뉴얼보면 아주 간단히 사용할수 있을 것이다.
고급스러운 사용을 위해서는 옵션 설정 API 나 flag 값을 활용해보도록 해라.
'학습자료(~2017) > C,C++' 카테고리의 다른 글
[C,C++] printf 사용시 포맷(fotmat) 지정에 관해 -(플래폼에 종속적이지 않은 printf) (0) | 2013.04.11 |
---|---|
Coroutines in C (코루틴) (0) | 2013.03.26 |
[GCC]gcc 컴파일 옵션 (0) | 2012.08.13 |
[C] #if 0 ,#if 1 의 사용의도 (0) | 2012.03.29 |
[C] 디버그용 매크로 - 매크로 가변인자사용 (1) | 2012.03.15 |