嵌入式SQL(Embedded SQL)是将SQL语句嵌入到应用程序中的一种方法。这样做的好处是可以直接在应用程序中使用数据库操作,而不需要调用繁琐的API或者命令行工具。
#include
#include
#include
#include
int main(int argc, char *argv[]) {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char sql[100];
char *server = "localhost";
char *user = "root";
char *password = "password";
char *database = "test_db";
conn = mysql_init(NULL);
if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) {
fprintf(stderr, "%sn", mysql_error(conn));
exit(1);
}
sprintf(sql, "SELECT * FROM users WHERE id = %d", 1);
if (mysql_query(conn, sql)) {
fprintf(stderr, "%sn", mysql_error(conn));
exit(1);
}
res = mysql_use_result(conn);
while ((row = mysql_fetch_row(res)) != NULL) {
printf("%s %s %sn", row[0], row[1], row[2]);
}
mysql_free_result(res);
mysql_close(conn);
return 0;
}
上面的代码演示了如何使用嵌入式SQL来查询MySQL数据库。首先,我们初始化了一个MySQL链接对象,然后用mysql_real_connect函数连接到数据库服务器。接着,我们使用sprintf函数构造了一个SQL语句,这里使用了%d占位符,它会被后面的数字代替。最后,我们使用mysql_query函数执行了查询,并用mysql_use_result函数获取结果集,逐行输出结果,最后关闭了链接。
嵌入式SQL中的语句可以是任何合法的SQL语句,包括SELECT、INSERT、UPDATE、DELETE等操作。但需要注意的是,嵌入式SQL的代码是与数据库系统紧密耦合的,对于不同的数据库系统,可能需要做出一些不同的配置和调整。此外,嵌入式SQL会增加代码的复杂度和维护成本,因此在实际应用中,需要仔细考虑是否使用。