您的位置:首页 > 运维架构 > Linux

Linux C/C++ 连接MySQL

2012-06-27 23:24 337 查看
#include <mysql.h>
#include <stdlib.h>
#include <stdio.h>
static char *server_args[] =
{
"this_program",       /* this string is not used */
"--datadir=.",
"--key_buffer_size=32M"
};
static char *server_groups[] =
{
"embedded",
"server",
"this_program_SERVER",
(char *)NULL
};
int main(void)
{
if (mysql_server_init(sizeof(server_args) / sizeof(char *),
server_args, server_groups))
exit(1);
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "localhost";
char *user = "root";
char *password = "root";
char *database = "gq_web";
conn = mysql_init(NULL);
/* Connect to database */
if (!mysql_real_connect(conn, server,
user, password, database, 0, NULL, 0))
{
fprintf(stderr, "%s/n", mysql_error(conn));
exit(1);
}
/* send SQL query */
if (mysql_query(conn, "show tables"))
{
fprintf(stderr, "%s/n", mysql_error(conn));
exit(1);
}
res = mysql_use_result(conn);
//utput table name */
printf("MySQL Tables in mysql database:/n");
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s /n", row[0]);
printf ("Number of rows: %lu/n", (unsigned long) mysql_num_rows(res));
MYSQL_FIELD *field;
while ((field = mysql_fetch_field(res)))
{
printf("field name %s/n", field->name);
}
int num_fields = mysql_num_fields(res);
for (int i = 0; i < num_fields; i++)
{
field = mysql_fetch_field_direct(res, i);
printf("Field %u is %s/n", i, field->name);
}
if (!mysql_set_character_set(conn, "utf8"))
{
MY_CHARSET_INFO cs;
mysql_get_character_set_info(conn, &cs);
printf("character set information:/n");
printf("character set name: %s/n", cs.name);
printf("collation name: %s/n", cs.csname);
printf("comment: %s/n", cs.comment);
printf("directory: %s/n", cs.dir);
printf("multi byte character min. length: %d/n", cs.mbminlen);
printf("multi byte character max. length: %d/n", cs.mbmaxlen);
}
/* close connection */
mysql_free_result(res);
mysql_close(conn);
/* Use any MySQL API functions here */
mysql_server_end();
return EXIT_SUCCESS;
}

[root@localhost ]# g++ -o output-file $(mysql_config --cflags) mysql_conn.c $(mysql_config --libs)


[root@localhost ]./output-file
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: