visual studio는 다운로드가 되어있는 상태라고 가정하고 maria db를 설치하겠습니다.
download 눌러서 들어가고
maria db 11.1.2 stable한 버전으로 받아줍니다
계속 쭉쭉 next~
계속 쭉쭉 next~
계속 쭉쭉 next~
자 여기 중요한데 user id가 root이고 password를 설정해주는 과정입니다.
여기서 입력하는 패스워드는 나중에 visual studio cpp파일에서 작성하는 코드 안에도 들어가기 때문에 까먹으면 안됩니다
next누르고 install 해줍니다.
maria db가 깔렸다면
이 프로그램을 실행시켜 줍니다.
신규버튼을 눌러서
정보들을 입력해주고 열기버튼을 눌러주면
db가 열렸습니다.
넣어주고 저장버튼 눌러주면
만들어준 test 이름으로 새로운 테이블이 생성된 것을 확인 할 수 있다.
쿼리를 눌러 들어간 후 해당 sql문을 입력하고 실행시킨다.(재생버튼 클릭 or F9)
value 내부의 값을 1로 2번 입력하고 2로 1번 입력해주겠습니다.
입력 후에 SELECT를 통해 잘 삽입되었는지 체크해준다.
======================================maria db 설치===========================================
여기까지 완료되었다면 visual studio에서 세팅을 해주어야 한다.
visual studio 키고 속성에 들어가서
libmariadb.dll 파일을 프로젝트 솔루션이 있는 폴더 내부로 복사해줍니다.
만약 안했다면 코드를 실행시킬 때
이런 오류창이 나옵니다.
거의 다왔습니다...!
이제 아래 cpp 파일을 만들어줍니다.
#include <iostream>
#include <mysql.h>
using namespace std;
void main()
{
MYSQL* conn;
MYSQL* conn_result;
unsigned int timeout_sec = 1;
conn = mysql_init(NULL);
mysql_options(conn, MYSQL_OPT_CONNECT_TIMEOUT, &timeout_sec);
conn_result = mysql_real_connect(conn, "127.0.0.1", "root", "비밀번호", "mysql", 3306, NULL, 0);
//비밀번호 바꿔주세요!!
if (NULL == conn_result)
{
cout << "DB Connection Fail" << endl;
}
else
{
cout << "DB Connection Success" << endl;
char query[1024];
MYSQL_RES* result;
MYSQL_ROW row;
sprintf_s(query, 1024, "SELECT * FROM test");//아까전에 만들어줬던 db 내 테이블 이름
// Send Query
if (mysql_query(conn, query))
{
cout << "SELECT Fail" << endl;
}
// Get Response
result = mysql_store_result(conn);
int fields = mysql_num_fields(result); // 필드 갯수 구함
while (row = mysql_fetch_row(result)) // 모든 레코드 탐색
{
for (int i = 0; i < fields; i++) // 각각의 레코드에서 모든 필드 값 출력
{
cout << row[i] << " ";
}
cout << endl;
}
mysql_free_result(result);
mysql_close(conn);
}
return;
}
실행결과 값을 잘 불러온 것을 확인할 수 있습니다.
알아야 할 주요 코드만 살펴보겠습니다.
14번 라인 conn_result = mysql_real_connect(conn, "127.0.0.1", "root", "dnckdals1!", "mysql", 3306, NULL, 0);
첫번째 인자 conn은 mariadb와의 연결상태, 두번째 인자는 해당 db의 ip주소, 세번째 인자는 mariadb의 id, 네번째 인자는 mariadb의 pw(꼭 변경해주세요!), 다섯번째는 mariadb내에서 접근할 database의 이름, 여섯번째 인자는 해당 db의 port주소 , 일곱번째 인자는 unix_socket, 여덟번째는 client flag
29번 라인 sprintf_s(query, 1024, "SELECT * FROM test");
3번째 인자에 db로 보낼 sql문을 작성하는 것인데 SELECT를 통해 값을 불러올 수도 있고 INSERT를 통해 값을 추가 할 수도 있다.
여기저기 찾아보면서 엄청난 삽질을 하면서 성공했는데 이 글을 보는 여러분들은 한번에 잘 하시길...!
아래 링크의 글을 보면서 공부하였습니다.
https://languagestory.tistory.com/5
'C++ Programming' 카테고리의 다른 글
[C++ Programming] Template을 사용한 Doubly Linked List 구현 (1) | 2024.03.17 |
---|---|
[C++] MFC에서 CString 사용 시 printf 값이 이상할 경우 해결 방법 (0) | 2023.10.31 |
프로그램 실행 시 메모리 구조 (0) | 2023.10.25 |
[C++ Debugging] LNK1120, LNK2001 에러(Static 사용 시) (1) | 2023.10.24 |
[C++] 바람직한 C++ 프로그래밍 방법 (0) | 2023.10.24 |