c++_mysql 값이 없을 때 에러

kimha1999의 이미지

c++에서 mysql 연동해서 사용하고 있는데 찾고자 하는 값이 없을 때 에러가 납니다
어떻게 예외처리 해야되나요??

q = "SELECT name FROM r WHERE account = '";
q += a;
q += "'";

이렇게 짰고 account 입력할 때 없는 값을 치고 없다고 출력하고 싶습니다.

그리고 추가적으로
if (mysql_query(conn, q.c_str())) {
fprintf(stderr, "%s ", mysql_error(conn));
exit(1);
}
이 코드가 뭔지 모르겠습니다ㅜㅜ

chanik의 이미지

mysql_query(conn, query);
results = mysql_store_result( conn );
count   = mysql_num_rows(results);

식으로 count를 조사하면 판단이 가능하겠습니다. 결과를 못 찾으면 count == 0 이 되겠죠.

추가로 올리신 코드는 mysql_query()가 실패하면 오류메시지를 표준오류스트림(stderr)으로 출력한 다음, 종료코드 1을 넘기고 프로그램을 실행 끝낸다는 뜻이네요. 여기서 오류란 위의 query()에서 결과를 찾지 못했다는 부드러운 의미가 아니고, query() 문법이 틀렸다거나 망문제같은 이유로 query() 자체가 실패했다는 뜻입니다.

https://dev.mysql.com/doc/c-api/8.0/en/mysql-query.html

Quote:
Return Values

Zero for success. Nonzero if an error occurred.

https://dev.mysql.com/doc/c-api/8.0/en/mysql-error.html

Quote:
mysql_error() returns a null-terminated string containing the error message for the most recently invoked API function that failed