2011-10-11 60 views
1

我正在使用MySQL C API。 现在我在C中有一些Double Typed数据,我想将它们插入到数据库中。 我现在所知道的是使用mysql_real_query()和一个语句字符串来做到这一点。 我担心失去精确度,因为上面的过程涉及到双重字符串然后加倍。有没有办法避免这种情况?像直接发送双重二进制数据到MySQL?我假设MySQL实现与C相同的双倍。直接从C发送双键输入的数据到MySQL

回答

2

您应该使用prepared statementdouble的占位符,然后您可以绑定double而不将任何内容转换为字符串。事情是这样的:

char *insert = "insert into pancakes (d) values (?)"; 
MYSQL_BIND b; 
MYSQL_STMT *stmt = mysql_stmt_init(mysql); 
mysql_stmt_prepare(stmt, insert, strlen(insert)); 

b.buffer_type = MYSQL_TYPE_DOUBLE; 
b.buffer = &your_double; 
/* Fill in the rest of b...*/ 
mysql_stmt_bind_param(stmt, &b); 

参考文献:

+0

感谢。很有帮助。 – WiSaGaN