#include #include #define REPLACE_SAMPLE "REPLACE INTO my_table (balance) SELECT balance FROM my_table2" MYSQL mysql; MYSQL_STMT *stmt; /* MYSQL_BIND bind[3]; */ my_ulonglong affected_rows; int main() { mysql_init (&mysql); mysql_real_connect(&mysql,NULL,"root",NULL,"test",0,NULL,0); stmt = mysql_stmt_init(&mysql); if (!stmt) { fprintf(stderr, " mysql_stmt_init(), out of memory\n"); exit(0); } if (mysql_stmt_prepare(stmt, REPLACE_SAMPLE, strlen(REPLACE_SAMPLE))) { fprintf(stderr, " mysql_stmt_prepare(), REPLACE failed\n"); fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); exit(0); } fprintf(stdout, " prepare, REPLACE successful\n"); /* Execute the REPLACE statement */ if (mysql_stmt_execute(stmt)) { fprintf(stderr, " mysql_stmt_execute(), failed\n"); fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); exit(0); } /* Get the total number of affected rows */ affected_rows= mysql_stmt_affected_rows(stmt); fprintf(stdout, " total affected rows(insert 1): %lu\n", (unsigned long) affected_rows); /* Close the statement */ if (mysql_stmt_close(stmt)) { fprintf(stderr, " failed while closing the statement\n"); fprintf(stderr, " %s\n", mysql_stmt_error(stmt)); exit(0); } mysql_close(&mysql); }