牛骨文教育服务平台(让学习变的简单)
博文笔记

c++编程中使用mysql语句的案例,注意mysql_real_query和mysql_query的区别

创建时间:2016-11-28 投稿人: 浏览次数:2978

c++编程中使用mysql语句的案例:

给你个参考例子吧。
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include "mysql.h"
 
MYSQL *mysql;
MYSQL_RES *results;
MYSQL_ROW record;
 
static char *server_options[] = { "mysql_test", "--defaults-file=my.cnf" };
int num_elements = sizeof(server_options)/ sizeof(char *);
static char *server_groups[] = { "libmysqld_server", "libmysqld_client" };
 
int main(void)
{
   mysql_server_init(num_elements, server_options, server_groups);
   mysql = mysql_init(NULL);
   mysql_options(mysql, MYSQL_READ_DEFAULT_GROUP, "libmysqld_client");
   mysql_options(mysql, MYSQL_OPT_USE_EMBEDDED_CONNECTION, NULL);
    mysql_real_connect(mysql, NULL,NULL,NULL, "database1", 0,NULL,0);
 
   mysql_query(mysql, "SELECT column1, column2 FROMtable1");
    results = mysql_store_result(mysql);
    while((record = mysql_fetch_row(results))) {
      printf("%s - %s 
", record[0], record[1]);
   }
    mysql_free_result(results);
   mysql_close(mysql);
   mysql_server_end();
    return 0;
}
注意mysql_real_query和mysql_query的区别:

执行由query指向的SQL查询,它应该是一个length个字节的字符串。查询必须由一个单个的SQL语句组成。你不应该在语句后增加一个终止的分号(“;”)或g。 对于包含二进制数据的查询,你必须使用mysql_real_query()而不是mysql_query(),因为二进制代码数据可能包含“”字符,而且,mysql_real_query()比mysql_query()更快,因为它不会在查询字符串上调用strlen()。如果查询成功,函数返回零。如果发生一个错误,函数返回非零。出错的代码及原因如下所示: CR_COMMANDS_OUT_OF_SYNC 命令以一个不适当的次序被执行。 CR_SERVER_GONE_ERROR MySQL服务器关闭了。 CR_SERVER_LOST 对服务器的连接在查询期间失去。 CR_UNKNOWN_ERROR 发生一个未知的错误。 正确情况返回值是0。



MYSQL_RES *mysql_store_result(MYSQL *mysql)MYSQL_RES *mysql_store_result(MYSQL *mysql)

具有多个结果的MYSQL_RES结果集合。如果出现错误,返回NULL。


MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)

检索一个结果集合的下一行。当在mysql_store_result()之后使用时,如果没有更多的行可检索时,mysql_fetch_row()返回NULL。当在mysql_usr_result()之后使用时,当没有更多的行可检索时或如果出现一个错误,mysql_fetch_row()返回NULL。


中国军事网    男女健康网


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。