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

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 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵