国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

在MySQL數(shù)據(jù)庫中使用C執(zhí)行SQL語句的方法

2024-07-24 12:49:02
字體:
供稿:網(wǎng)友
他們將討論返回數(shù)據(jù)的語句,例如INSERT以及不返回數(shù)據(jù)的語句,例如UPDATE和DELETE。然后,他們將編寫從數(shù)據(jù)庫檢索數(shù)據(jù)的簡單程序

執(zhí)行SQL語句

現(xiàn)在,我們已經(jīng)有了一個連接,并且知道如何處理錯誤,是時候討論使用我們的數(shù)據(jù)庫來作一些實際工作了。執(zhí)行所有類型的SQL的主關(guān)鍵字是mysql_query:

int mysql_query(MYSQL *connection, const char *query)

正如您所見,它非常簡單。它取一個指向連接結(jié)構(gòu)的指針和包含要執(zhí)行的SQL的文本字符串;與命令行工具不同,將不使用結(jié)束分號。成功之后,返回0。在需要包含二進制數(shù)據(jù)的特殊情況下,可以使用相關(guān)的函數(shù),mysql_real_query。雖然出于本章的目的,我們僅需要討論mysql_query。
不返回數(shù)據(jù)的SQL語句

我們將先討論UPDATE、DELETE和INSERT語句。因為它們不返回數(shù)據(jù),所以更易于使用。
這里我們將介紹的另一個重要函數(shù)是檢查受影響的行數(shù)的函數(shù):

my_ulonglong mysql_affected_rows(MYSQL *connection);

可能關(guān)于這一函數(shù)的最顯而易見的事就是其非同尋常的返回結(jié)果。由于可移植性原因,這是一個特殊的無符號類型。為了在printf中使用,建議將其強制轉(zhuǎn)換成使用%lu格式規(guī)范的無符號長整數(shù)。這個函數(shù)返回受以前的UPDATE、INSERT或DELETE查詢影響的行數(shù),這些查詢是使用mysql_query執(zhí)行的。
通常對于mysql_函數(shù),返回碼0表示沒有行受影響;正數(shù)表示實際結(jié)果,通常是受影響的行數(shù)。
如前所述,當使用mysql_affected_rows時可能出現(xiàn)未期望的結(jié)果。讓我們先討論受INSERT語句影響的行數(shù),它將按預(yù)期進行操作。將下列代碼添加到程序 connect2.c 中,并且稱其為insert1.c:
復(fù)制代碼 代碼如下:

#include
#include
#include "mysql.h"
int main(int argc, char *argv[]) {
MYSQL my_connection;
int res;
mysql_init(&my_connection);
if (mysql_real_connect(&my_connection, "localhost",
"rick", "bar", "rick", 0, NULL, 0)) {
printf("Connection success/n");
res = mysql_query(&my_connection,
"INSERT INTO children(fname,age),
VALUES('Ann',3)");
if (!res) {
printf("Inserted %lu rows/n",
(unsigned long)mysql_affected_rows(&my_connection));
} else {
fprintf(stderr, "Insert error %d: s/n",mysql_errno ,
(&my_connection),
mysql_error(&my_connection));
}
mysql_close(&my_connection);
} else {
fprintf(stderr, "Connection failed/n");
if (mysql_errno(&my_connection)) {
fprintf(stderr, "Connection error %d: %s/n",
mysql_errno(&my_connection),
mysql_error(&my_connection));
}
}
return EXIT_SUCCESS;
}

正如預(yù)期,插入的行數(shù)為1。
現(xiàn)在,我們更改代碼,所以 'insert' 部分被替換成:
復(fù)制代碼 代碼如下:

mysql_errno(&my_connection), mysql_error(&my_connection));
}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 建平县| 塔城市| 镇安县| 广南县| 阳东县| 赣州市| 永德县| 肥东县| 桂东县| 岳阳市| 托里县| 阜康市| 合水县| 灵山县| 新丰县| 望江县| 抚松县| 志丹县| 贵南县| 依安县| 青神县| 虎林市| 郑州市| 碌曲县| 闻喜县| 普兰县| 栾城县| 宁安市| 炉霍县| 黔江区| 新野县| 邓州市| 明溪县| 金平| 上林县| 抚松县| 迁安市| 宁德市| 仁怀市| 云南省| 武山县|