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()可以获取变量值?
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) ;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。