2011-06-02 30 views
2

如何編寫一個獲取客戶端爲MySQL服務器輸入的C程序?我使用Fedora作爲我的操作系統。將客戶端輸入插入到MySQL數據庫中使用C

這裏是我的代碼:

#include<my_global.h> 
#include<mysql.h> 

main() 
{ 
    char name[25]; 
    MYSQL *conn; 
    conn=mysql_init(NULL); 
    mysql_real_connect(conn,"localhost","root","","testdb",0,NULL,0); 
    printf("Enter your name:"); 
    scanf("%s",name); 
    mysql_query(conn,"CREATE TABLE Users(name VARCHAR(25))"); 

    mysql_query(conn,"INSERT INTO Users VALUES(name)"); 
    //mysql_query(conn,"INSERT INTO Users VALUES('Farhan')"); 
    //mysql_query(conn,"INSERT INTO Users VALUES('Dileep')"); 
    //mysql_query(conn,"INSERT INTO Users VALUES('RAJIV')"); 

    mysql_close(conn); 
} 

我想在客戶端輸入存儲在MySQL數據庫,而不是常量。

回答

1

嘗試sprintf'ing名到你的查詢,像這樣:

int len = query_len + name_len + 1; 
char * insert_query = (char *) malloc(len); 
snprintf(insert_query, len, "INSERT INTO Users VALUES('%s')", name); 

但是,你會檢查緩衝區長度,特別是escaping the name string當需要採取一些照顧。

+0

編譯時顯示Query_len和name_len未聲明... – user780535 2011-06-02 10:58:08

+0

謝謝,有想法... – user780535 2011-06-06 06:24:20

相關問題