C言語アクセスMYSQLデータベース構文

25443 ワード

C言語アクセスMYSQLデータベース構文
基本的な添削変更操作:
#include
#include
#include

void error_quit(const char *str,MYSQL *conn_ptr){
	fprintf(stderr,"%s
erron:%d
error:%s
sqlstat:%s
"
,str,mysql_errno(conn_ptr),mysql_error(conn_ptr),mysql_sqlstate(conn_ptr)); if(conn_ptr!=NULL){ mysql_close(conn_ptr); } free(conn_ptr); exit(0); } void free_conn(MYSQL *mysql){ mysql_close(mysql); free(mysql); } void insert_chang(MYSQL *my_con){ int res; res=mysql_query(my_con,"insert into emp values(3,'changlq',18000.0)"); if(res != 0){ error_quit("insert fail",my_con); } printf("affected rows:%d
"
,mysql_affected_rows(my_con)); printf("last insertid:%d
"
,mysql_insert_id(my_con)); } void update_chang(MYSQL *my_con){ int res; res=mysql_query(my_con,"update emp set sal=28000.0 where id=3"); if(res != 0){ error_quit("update fail",my_con); } printf("affected rows:%d
"
,mysql_affected_rows(my_con)); } void delete_chang(MYSQL *my_con){ int res; res=mysql_query(my_con,"delete from emp where id=3"); if(res != 0){ error_quit("delete fail",my_con); } printf("affected rows:%d
"
,mysql_affected_rows(my_con)); } void select_mysql(MYSQL *my_con){ MYSQL_RES *my_res; // MYSQL_FIELD *my_field;// MYSQL_ROW my_row;// unsigned long *lengths; int cols,res,i; // int num=1; char sql_str[]="select * from emp where id>=%d"; printf("[%s]
"
,sql_str); sprintf(sql_str,sql_str,num); printf("[%s]
"
,sql_str); res=mysql_query(my_con,sql_str); if(res!=0) error_quit("select fail",my_con); // ,mysql_store_result ,mysql_use_result my_res=mysql_store_result(my_con); if(my_res==NULL) error_quit("mysql_store_result fail",my_con); // :mysql_row_seek(),mysql_data_seek(),mysql_num_rows mysql_store_result printf("num rows:%d
"
,mysql_num_rows(my_res)); // cols=mysql_num_fields(my_res); printf("num cols:%d
"
,cols); // my_field=mysql_fetch_fields(my_res); for(i=0;i<cols;i++) printf("%s\t",my_field[i].name); printf("
"
); // %d for(i=0;i<cols;i++) printf("%d\t",my_field[i].type); printf("
"
); // while(my_row=mysql_fetch_row(my_res)){ for(i=0;i<cols;i++){ // lengths=mysql_fetch_lengths(my_res); printf("%s(%lu)\t",my_row[i],lengths[i]); } printf("
"
); } mysql_free_result(my_res); } int main(){ /* gcc -o chang_mysql mysql_access.c -L /usr/lib64/mysql -lmysqlclient */ MYSQL *conn_ptr=(MYSQL *)malloc(sizeof(MYSQL)); conn_ptr=mysql_init(conn_ptr); if(!conn_ptr){ printf("mysql_init error
"
); return -1; } //conn_ptr=mysql_real_connect(conn_ptr,"127.0.0.1","root","123456","db_chang",3306,NULL,0); conn_ptr=mysql_real_connect(conn_ptr,"127.0.0.1","root","123456","chang_dep",0,NULL,0); if(conn_ptr){ printf("connect success!
"
); }else{ printf("connect fail![errno:%d][error:%s][sqlstat:%s]
"
,mysql_errno(conn_ptr),mysql_error(conn_ptr),mysql_sqlstate(conn_ptr)); } mysql_query(conn_ptr,"set names utf8"); //select printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"
); select_mysql(conn_ptr); //insert printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"
); insert_chang(conn_ptr); select_mysql(conn_ptr); //update printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"
); update_chang(conn_ptr); select_mysql(conn_ptr); //delete printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"
); delete_chang(conn_ptr); select_mysql(conn_ptr); printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"
); free_conn(conn_ptr); return 0; }