728x90
++++
mysql_free_result(sql_result) 을 마지막에 쓰자
CREATE TABLE ANIMAL
( id INT PRIMARY KEY,
name VARCHAR(20) );
main.c
#include "chun.h"
void myselect(MYSQL *conn_ptr, char* query);
void myinsert(MYSQL *conn_ptr, char* query);
void mydelete(MYSQL *conn_ptr, char* query);
int main(int argc, char** argv)
{
MYSQL *conn_ptr;
// db connect
conn_ptr = db_init("IP", "ID", "PWD", "DATABASE");
char query[1024];
printf("----------Welcome SQL Mode---------\n");
while(1)
{
printf("----------1. SELECT Mode-----------\n");
printf("----------2. INSERT Mode-----------\n");
printf("----------3. DELETE Mode-----------\n");
printf("----------0. EXIT -----------\n");
printf("insert mode number : ");
int node = 0 ;
scanf("%d", &node);
printf("%d\n",node);
switch(node)
{
case 1:
printf("######Welcome Select Mode######\n");
myselect(conn_ptr, query);
break;
case 2:
printf("######Welecome Insert Mode######\n");
myinsert(conn_ptr, query);
break;
case 3:
printf("######Welecome Delete Mode######\n");
mydelete(conn_ptr, query);
break;
}
if(node == 0)
break;
}
mysql_close(conn_ptr);
return 0;
}
void myselect(MYSQL *conn_ptr, char* query)
{
memset(query, 0x00, sizeof(query));
sprintf(query, "SELECT * FROM ANIMAL;");
MYSQL_RES *sql_result;
MYSQL_ROW row;
Animal animal[10];
memset(animal, 0x00, sizeof(animal));
mysql_query(conn_ptr, query); // query를 사용할때..select이든 뭐든
sql_result = mysql_store_result(conn_ptr); // mysql실행시 결과를 저장
int field = 0;
field = mysql_num_fields(sql_result); // column의 개수를 받아온다.
printf("field = %d\n", field);
int data = 0;
data = mysql_num_rows(sql_result); // 데이터의 총개수를 받아온다.
printf("data = %d\n", data);
/* row 하나씩 받아온다
row[0] , row[1]은 각각 첫열 두번째열 데이터를 의미한다
*/
int i = 0;
while((row=mysql_fetch_row(sql_result))){ // row 하나씩 받아온다.
animal[i].id = atoi(row[0]);
memcpy(animal[i].name, row[1], sizeof(animal[i].name));
i++;
}
mysql_free_result(sql_result)
for(i=0 ; i < data ; i++)
printf("%d, %s\n", animal[i].id, animal[i].name);
}
void mydelete(MYSQL *conn_ptr, char* query)
{
memset(query, 0x00, sizeof(query));
char name[20];
memset(name, 0x00, sizeof(name));
printf("input name = ");
scanf("%s", &name);
printf("your input data name = %s\n", name);
sprintf(query, "DELETE FROM ANIMAL WHERE NAME='%s';", name);
int check = 0;
check = mysql_query(conn_ptr, query); // insert 함수 실행
if(check == 0)
printf("Success!!\n");
else
printf("Fail!! why? %s\n", mysql_error(conn_ptr));
}
void myinsert(MYSQL *conn_ptr, char* query)
{
memset(query, 0x00, sizeof(query));
int id = 0;
char name[20];
memset(name, 0x00, sizeof(name));
printf("input id = ");
scanf("%d", &id);
printf("input name = ");
scanf("%s", &name);
printf("your input data id = %d, name = %s\n", id, name);
sprintf(query, "INSERT INTO ANIMAL (id, name) VALUES (%d, '%s');", id, name);
int check = 0;
check = mysql_query(conn_ptr, query); // insert 함수 실행
if(check == 0)
printf("Success!!\n");
else
printf("Fail!! why? %s\n", mysql_error(conn_ptr));
}
참고했던 링크
https://m.blog.naver.com/PostView.nhn?blogId=dgsw102&logNo=221058030471&proxyReferer=https%3A%2F%2Fwww.google.com%2F
https://kldp.org/node/19316
728x90
'개발 업무(코딩)-개발자였을때 썼던..' 카테고리의 다른 글
c언어 리눅스(linux) UDP 예제 (0) | 2023.01.08 |
---|---|
c언어 파일입출력 중 읽기 (0) | 2023.01.08 |
c와 mariadb 연결하는 방법 및 예제 1 - db connect중심 (0) | 2023.01.08 |
c와 mariadb 연결하는 방법 및 예제 0 - 간단한 Makefile (0) | 2023.01.08 |
linux환경 vi편집기 명령어 (0) | 2023.01.08 |