Linux 下 C 语言连接 MySQL 数据库 / 西安嵌入式培训 </SPA N>
{
对于 C 语言调用 MySQL 数据在 MySQL 数据手册里面就已经有了此做一个简单的介绍。
首先启动 MySQL 数据库,等待客户端的连接。
下面要做的就是使用 MySQL 中提供的 API 来连接 MySQL 数据库。常用 API 如下:
mysql_init mysql_real_connect mysql_queri mysql_store_result mysql_num_field mysql_fetch_row mysql_fetch_length mysql_free_result 等 API 这些常用函数均可以 MySQL 数据手册里面可以查到下面来看一下连接方法:
typedef struct xdbsql_struct {
MYSQL *mysql; /**< our databas handl */
char *mysql_user; /**< usernam for mysql server */
char *mysql_password; /**< password for mysql server */
char *mysql_host; /**< hostnam of the mysql server */
char *mysql_database; /**< databas on the mysql server */
int mysql_port; /**< port of the mysql server */
char *mysql_socket; /**< socket of the mysql server */
unsign long mysql_flag; /**< flag for the connect to the mysql server */
_xdbsql} *xdbsql.;
xq->mysql_us = "root";
xq->mysql_password = "123456";
xq->mysql_host = "localhost";
xq->mysql_databas = "qqq";
xq->mysql_port = 0;
xq->mysql_socket = 0;
xq->mysql_flag = 0;
初始化: xq->mysql = mysql_init NULL ;
连接数据库: mysql_real_connect mysql, xq->mysql_host, xq->mysql_user, xq->mysql_password, xq->mysql_database, xq->mysql_port, xq->mysql_socket, xq->mysql_flag == NULL
执行 SQL 语句: ret = mysql_queri xq->mysql, SQL 语句 ) ;
下面提供局部代码仅供参考:
void xdb_sql_mysql_init xdbsql xq // 由 main 传送过来 xq 参数
/* creat a MYSQL handl */
if xq->mysql == NULL // 如果 xp->mysql 为 NUll 话就初始化数据库
{
printf "init/n" ; //
xq->mysql = mysql_init NULL ; // 初始化 mysql 数据库
}
/* process our own configur */
xq->mysql_us = "root";
xq->mysql_password = "123456";
xq->mysql_host = "localhost";
xq->mysql_databas = "qqq";
xq->mysql_port = 0;
xq->mysql_socket = 0;
xq->mysql_flag = 0;
/* connect to the databas server */
xdb_sql_mysql_connect xq ; // 调用连接数据库
}
void xdb_sql_mysql_connect xdbsql xq
/* connect to the databas */
xq->mysql_host,if mysql_real_connect xq->mysql. xq->mysql_user, xq->mysql_password, xq->mysql_database, xq->mysql_port, xq->mysql_socket, xq->mysql_flag == NULL
mysql_error xq->mysql printf "fail to connect to mysql server: %s/n".;
} else