728x90
Mysql을 실행하는 동안 어떠한 이유에서 실행이 되지 않거나
연결이 끊어지는 경우가 있는데 개발자는 왜 어떠한 이유로 문제가
발생하는지를 추적해야 하기 때문에 오늘 포스팅의 에러 출력에 대한 내용이 중요합니다.
Mysql 라이브러리에서는 기본적으로 연결된 소켓의 에러 정보를 출력할 수 있는
함수를 제공하는데 mysql_error() 라는 함수입니다.
mysql_error(&connection);
해당 함수에 들어가는 인자는 현재 프로그램에서 Mysql 연결할 때 선언한
MYSQL 포인터 변수입니다.
MYSQL *connection;
간단하게 예를들어서 DB를 Select 하는 구문에서 에러가 발생할 경우에
해당 함수를 가지고 에러내용을 출력하는 방법을 알아보겠습니다.
int iStatus;
char strQuery[512];
memset(strQuery, 0x00, sizeof(strQuery));
sprintf(strQuery, "select test_id from test where test_num = 1");
iStatus = mysql_query(connection, strQuery);
if(iStatus == 0){
// 다음 실행 코드
}else{
fprintf(stderr,"Mysql Error : %s\n", mysql_error(connection));
}
여기에서 마지막 두번째줄에 실행 에러가 발생하면 fprintf를 통해 에러 내용을 출력합니다.
자 여기서 응용을 해서 만약에 해당 에러 내용을 로그로 남기고 싶다면
int iStatus;
char strQuery[512];
memset(strQuery, 0x00, sizeof(strQuery));
sprintf(strQuery, "select test_id from test where test_num = 1");
iStatus = mysql_query(connection, strQuery);
if(iStatus == 0){
// 다음 실행 코드
}else{
write_log(mysql_error(connection));
}
write_log 함수를 통해서 에러 내용을 입력해주면 됩니다.
write_log 함수에 대한 내용은 다음 포스팅을 참고하시면 됩니다.
2021.12.30 - [서버/C언어 프로그래밍] - Log파일 기록
728x90
반응형
'서버 > Mysql' 카테고리의 다른 글
SQL 일정 기간 이내 테이블 조회 (10) | 2022.02.16 |
---|---|
Mysql 사용자 생성 및 권한 설정 (6) | 2022.02.11 |
Mysql 필드 데이터 Null select 방법 (22) | 2022.01.27 |
테이블 데이터형 정리 (16) | 2022.01.14 |
Every derived table must have its own alias 에러 해결 (1) | 2022.01.11 |
댓글