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 ios可以实现ymodem-1k协议 1024字节传输吗?
  • ¥300 寻抓云闪付tn组成网页付款链接
  • ¥15 请问Ubuntu要怎么安装chrome呀?
  • ¥15 视频编码 十六进制问题
  • ¥15 Xsheii7我安装这个文件的时候跳出来另一个文件已锁定文件的无一部分进程无法访问。这个该怎么解决
  • ¥15 unity terrain打包后地形错位,跟建筑不在同一个位置,怎么办
  • ¥15 FileNotFoundError 解决方案
  • ¥15 uniapp实现如下图的图表功能
  • ¥15 u-subsection如何修改相邻两个节点样式
  • ¥30 vs2010开发 WFP(windows filtering platform)