0
正在嘗試將值插入到mysql數據庫(在beaglebone黑色上的linux debian)的C項目中工作。代碼工作正常時,我插入常量到數據庫中,但我不知道如何獲取日期/時間和雙數(溫度)的變量。在它已經一個星期,但似乎無法弄清楚,所以任何洞察力將不勝感激。c將變量插入到mysql數據庫beaglebone
我試過的所有東西都會以編譯錯誤結束,在數據庫或零中爲null。我覺得我很接近......但顯然缺少一些東西,可能是在INSERT INTO行?
char buf[LEN];
time_t curtime;
struct tm *loc_time;
curtime = time (NULL);
loc_time = localtime (&curtime);
strftime (buf, LEN, "%Y-%m-%d" " " "%X", loc_time);
fputs (buf, stdout);
MYSQL *con = mysql_init(NULL);
if (con == NULL)
{
fprintf(stderr, "mysql_init() failed\n");
exit(1);
}
if (mysql_real_connect(con, "localhost", "user", "pass", "TempDB", 0, NULL, 0) == NULL)
{
finish_with_error(con);
}
if (mysql_query(con, "CREATE TABLE IF NOT EXISTS TempMeas(MeasTime DATETIME, Temp DOUBLE)"))
{
finish_with_error(con);
}
if (mysql_query(con, "INSERT INTO TempMeas(MeasTime, Temp) VALUES('%d', '%d')", buf, j))
{
finish_with_error(con);
}
mysql_close(con);
exit(0);
已嘗試u唱你的3線代碼,它編譯,但是當我跑它時,它給了一個錯誤:「分段錯誤」。我已經嘗試了一些其他的東西,但是當我使用常量插入時沒有問題。有什麼想法嗎? – graceyj20 2015-04-02 00:49:50
運行gdb並收到以下內容:程序收到信號SIGSEGV,分段故障。 0xb6b9d010來自/lib/arm-linux-gnueabihf/libc.so.6的_IO_str_overflow()然後做了回溯:#0 0xb6b9d010來自/lib/arm-linux-gnueabihf/libc.so.6的_IO_str_overflow() #1 0xb6b9c252 in /lib/arm-linux-gnueabihf/libc.so.6中的_IO_default_xsputn() #2 0xb6b7b712 in /lib/arm-linux-gnueabihf/libc.so.6中的vfprintf()中vsglef #3 0xb6b952e2(vsprintf )from /lib/arm-linux-gnueabihf/libc.so.6 #4 0xb6b82838 in sprintf()from /lib/arm-linux-gnueabihf/libc.so.6 #5 0x000088e0 in main(argc = 2, argv = 0xbef ... – graceyj20 2015-04-02 02:06:53
對不起,我的錯,編輯過的帖子, – 2015-04-02 09:11:29