[MYSQL] 간단 사용법 예제코드
참고 :
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 값을 활용해보도록 해라.