开发者社区> 问答> 正文

MySQL Connector/C 插入数据

c语言连接mysql数据库用int mysql_query(MYSQL mysql, const char stmt_str)函数插入数据.

mysql_query(conn, "INSERT INTO list (ipaddress) VALUES ('192.168.1.1')")
我想把'192.168.1.1'用变量替代,但是替换成变量名后插入数据库的就是变量名本身,不是变量值。

如何让mysql_query()可以获取变量值?

展开
收起
a123456678 2016-06-08 14:52:43 2076 0
1 条回答
写回答
取消 提交回答
  • char sql[1024]= "insert into list values(?)";
    char value[]= "192.168.1.1";
    MYSQL_STMT* stmt ;
    MYSQL_BIND  bind[1];
    unsigned long val_len ;
    // mysql  is  MYSQL* mysql   mysql_init(mysql);
    stmt = mysql_stmt_init(mysql);
    if(!stmt)
    {
        //error
    }
    if(mysql_stmt_prepare(stmt,sql, strlen(sql)) )
    {
        // error
    }
    // bind value
    memset(bind,0,sizeof(bind));
    bind[0].buffer_type=MYSQL_TYPE_STRING ;
    bind[0].buffer = (char*)value ;
    bind[0].length = &val_len ;
    bind[0].buffer_length = strlen(value);
    bind[0].is_null = 0 ;
    bind[0].is_error = 0 ;
    val_len = strlen(value);
    mysql_stmt_bind_param(stmt,bind);
    // execute 
    if(mysql_stmt_execute(stmt) )
    {
        //error
    }
    // close mysql_stmt
    mysql_stmt_close(stmt) ;
    2019-07-17 19:31:59
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像