接續前一節,假設主程式已經取得了搜尋的結果,儲存在記憶體內, 用一個名叫 qp 的指標指著。現在我們示範幾個跟 qp 有關的基本函式。 您可以想像 qp 指著一個表格,也就是一個雙足標序列 (矩陣)。 矩陣內的元素,全都屬於 char* 資料型態。 不論資料表中各欄位宣告的資料型態是什麼,MySQL 查詢的結果一律是字串。
以下程式片段得知 qp 所指的表格有幾列,每列幾欄。
unsigned int rows, cols; rows = (unsigned int) mysql_num_rows(qp); cols = (unsigned int) mysql_num_fields(qp); printf("The result table has %u rows and %u columns\n", rows, cols);
MYSQL_ROW row; int i; while ((row = mysql_fetch_row(qp)) != NULL) { for (i=0; i < cols; ++i) { if (i > 0) putchar('\t'); printf("%s", row[i]); } putchar('\n'); }
printf("%s", row[i] != NULL ? row[i] : "NULL");這樣一來,如果 row[i] 是個 NULL pointer 則會輸出 "NULL" 字串, 否則就輸出資料庫原本的值。
因為 MySQL 搜尋的結果必然是字串,所以有必要的話,還需要透過 atof() 或是 atoi() 這些 C 函式,將字串轉成 double 或 int 型態。
習題