sadawqsd 2022-07-12 17:39 采纳率: 75%
浏览 35
已结题

c语言远程连接mysql成功,无法插入数据

问题遇到的现象和发生背景

使用c语言连接腾讯云上的mysql数据库,连接成功后sql语句始终执行无结果,插入数据不成功。使用的是root账户,拥有全部权限,服务器上3306端口已经打开,mysql防火墙关闭,使用putty远程插入可以。

问题相关代码,请勿粘贴截图

#include <stdio.h>
#include <mysql.h>
int main(int argc , char *argv)
{
MYSQL
my = mysql_init(NULL);
if(!my)
{
printf ("mysql init failed\n");
}else
{
printf("init succeed\n");
}
if(! mysql_real_connect(my ,"124.222.195.131", "root", "12345678", "text",3306, NULL, 0))
{
printf("connect error! \n");
printf("error:%s\n",mysql_error(my));

}else
{
    printf("connect succed\n");
    printf("version:%s\n",mysql_get_client_info());
}
const char* sql = 
"insert into xiangxishujv(SHEBEI_ID,NAME,SHUZHI)values('3','ple','12.3');";

mysql_close(my);
return 0;
}

运行结果及报错内容

程序编译无错误,运行的话就是mysql_get_client_info()函数返回的值始终是我下载的库函数版本而不是mysql版本,使用别的代码查询数据库上的表结构和数据行列数都成功执行。然后insert into指令没有任何效果

我的解答思路和尝试过的方法
我想要达到的结果

可以向mysql数据库插入数据。

  • 写回答

1条回答 默认 最新

  • a5156520 2022-07-12 18:33
    关注

    我是在本地测试的,加上sql执行语句后,本地测试插入msyql成功。代码如下:
    参考链接:

    利用C语言访问mysql_仟各的博客-CSDN博客_c语言 mysql

    
    #include <stdio.h>
    #include <mysql.h>  //https://blog.csdn.net/weixin_35705475/article/details/113201439 
    //https://blog.csdn.net/m0_55004108/article/details/125342943
    int main(int argc , char **argv)
    {
        MYSQL * my = mysql_init(NULL);
        if(!my)
        {
            printf ("mysql init failed\n");
        }else
        {
            printf("init succeed\n");
        }
        //https://www.php.cn/tool/phpmyadmin/456024.html
        if(! mysql_real_connect(my ,"127.0.0.1", "root", "root", "mos",3306, NULL, 0))
        {
            printf("connect error! \n");
            printf("error:%s\n",mysql_error(my));
        
        }else
        {
            printf("connect succed\n");
            printf("version:%s\n",mysql_get_client_info());
        }
        
        //https://blog.csdn.net/m0_54355780/article/details/121877561
        const char* sql = 
        "insert into test(id,name,remark) values('1','a','test insert myql');";
        int res = mysql_query(my,sql);   //执行sql语句
        if(res!=0){
            printf("插入数据库失败:%sr\n",mysql_error(my));
        }else{
                printf("插入成功!\n");
        } 
        
    
        
        mysql_close(my);
        
        return 0;
    }
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 7月21日
  • 已采纳回答 7月13日
  • 创建了问题 7月12日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。