首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

linux c程序往Mysql中插入一条数据。异常百出

2013-12-05 
linux c程序往Mysql中插入一条数据。错误百出啊/*往Mysql数据库中插入一条数据。好多未定义,还外带一个返回

linux c程序往Mysql中插入一条数据。错误百出啊


/*往Mysql数据库中插入一条数据。好多未定义,还外带一个返回值错误,我的智商受不了啊。求大神来看看*/
#include<mysql/mysql.h>//包含MySQL函数库
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
   MYSQL *mysql;// 声明MySQL操作符
   MYSQL_RES *res;// 声明结果集
   MYSQL_ROW row;// 声明行操作符
   char sqlcmd[200];// 保存插入语句
   int t,r;
   mysql=mysql_init(NULL);// 初始化连接处理程序
   if (!mysql_real_connect(mysql, "127.0.0.1", "root", "", "test", 0, NULL, 0)){// 建立数据库连接
      fprintf(stderr, "无法连接数据库,错误原因:%s\n",
      mysql_error(mysql));
      // 捕捉MySQL错误
   }
   else {
      puts("数据库连接成功");
      sprintf(sqlcmd, "%s", "insert into users(name,password) value(\'mr\',\'111\')");
      t = mysql_real_query(mysql,sqlcmd,(unsigned int) strlen(sqlcmd));// 执行插入语句
      if (t)
         printf("插入数据库失败:%s\n", mysql_error(mysql));
      else {
         
            printf("插入成功!\n");
         }
        
      }
      mysql_close(mysql);// 关闭数据库连接
   return EXIT_SUCCESS;
}


贴下错误
在函数‘main’中:
14.2.c:(.text+0x21):对‘mysql_init’未定义的引用
14.2.c:(.text+0x63):对‘mysql_real_connect’未定义的引用
14.2.c:(.text+0x77):对‘mysql_error’未定义的引用
14.2.c:(.text+0x130):对‘mysql_real_query’未定义的引用
14.2.c:(.text+0x14e):对‘mysql_error’未定义的引用
14.2.c:(.text+0x17b):对‘mysql_close’未定义的引用
collect2: error: ld returned 1 exit status
c linux Mysql
[解决办法]
你是在什么平台上编译的,linux上么,编译的命令什么?
[解决办法]
你编译的时候连接库了吗?
[解决办法]
连接数据库了吗?
[解决办法]
引用:

/*往Mysql数据库中插入一条数据。好多未定义,还外带一个返回值错误,我的智商受不了啊。求大神来看看*/
#include<mysql/mysql.h>//包含MySQL函数库
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
   MYSQL *mysql;// 声明MySQL操作符
   MYSQL_RES *res;// 声明结果集
   MYSQL_ROW row;// 声明行操作符
   char sqlcmd[200];// 保存插入语句
   int t,r;
   mysql=mysql_init(NULL);// 初始化连接处理程序
   if (!mysql_real_connect(mysql, "127.0.0.1", "root", "", "test", 0, NULL, 0)){// 建立数据库连接
      fprintf(stderr, "无法连接数据库,错误原因:%s\n",
      mysql_error(mysql));
      // 捕捉MySQL错误
   }
   else {
      puts("数据库连接成功");
      sprintf(sqlcmd, "%s", "insert into users(name,password) value(\'mr\',\'111\')");
      t = mysql_real_query(mysql,sqlcmd,(unsigned int) strlen(sqlcmd));// 执行插入语句
      if (t)
         printf("插入数据库失败:%s\n", mysql_error(mysql));
      else {
         
            printf("插入成功!\n");
         }
        
      }
      mysql_close(mysql);// 关闭数据库连接
   return EXIT_SUCCESS;
}


贴下错误
在函数‘main’中:
14.2.c:(.text+0x21):对‘mysql_init’未定义的引用
14.2.c:(.text+0x63):对‘mysql_real_connect’未定义的引用


14.2.c:(.text+0x77):对‘mysql_error’未定义的引用
14.2.c:(.text+0x130):对‘mysql_real_query’未定义的引用
14.2.c:(.text+0x14e):对‘mysql_error’未定义的引用
14.2.c:(.text+0x17b):对‘mysql_close’未定义的引用
collect2: error: ld returned 1 exit status


在编译的时候要链接一下对应的动态链接库
[解决办法]
gcc加这个:
-L/usr/lib64/mysql -lmysqlclient
参考你的系统平台

热点排行