保存到字符串數組經過數小時的試圖從我的MySQL DB中取出一行並將輸出保存到字符串數組後,我終於決定來這裏尋求幫助,因爲我顯然無法自己解決它。這不是家庭作業,我只是想寫一個簡單的命令行mysql-client,它可以集成到其他C項目中。因爲我不是從數據庫中提取整數,我不能跟的atoi :(工作將mysql_fetch_row()輸出與sprintf(),MySQL C API
我的問題是,我不能夠以的row[0]
值寫入到field_array[i]
使用sprintf()
,因爲不像我想,row[]
在每次調用mysql_fetch row()
時都沒有增加,實際上,在調用這個命令時,row[0]
只會更新MYSQL_RES *struct.current_row
的內容,在這種情況下爲MYSQL_RES *headers.current_row
因此問題是我想能夠正常地調用mysql_fetch_row()
,同時增加int i
爲field_array[i]
能夠成功sprintf()
所有值。
下面是相關的代碼。如果有任何缺失,請告訴我:)
使用的變量:我沒有得到工作打算的代碼
MYSQL_ROW row;
MYSQL_RES *headers;
char field_array[50][100];
部分:
while ((row = mysql_fetch_row(headers)))
{
for(int i = 0; i < num_fields; i++)
{
printf("%s\n", row[i] ? row[i] : "NULL");
sprintf(&field_array[i], "%s", row[i]);
}
}
請幫助我,如果可能的話。我正在使用Connector/C MySQL API,使用mingw32/GCC(Code :: Blocks)工作在Windows 7 x64環境中。
我的意圖是將所有值寫入field_array
以便稍後使用它們。
問題是什麼?你沒有說。你在書中找不到任何例子嗎? –
那麼問題是我無法將row [0]的值sprintf()寫入field_array [i],因爲row [0]沒有增加,而是在每次調用mysql_fetch_row()時都被替換。但我不知道那時候,所以我甚至不知道真正的問題是什麼:) – tehw0lf
然後,你還沒有準備好發表一個關於SO的問題!請將問題編輯到問題中以防止關閉/刪除。 –