1
我正在使用MySQL C API。 现在我在C中有一些Double Typed数据,我想将它们插入到数据库中。 我现在所知道的是使用mysql_real_query()和一个语句字符串来做到这一点。 我担心失去精确度,因为上面的过程涉及到双重字符串然后加倍。有没有办法避免这种情况?像直接发送双重二进制数据到MySQL?我假设MySQL实现与C相同的双倍。直接从C发送双键输入的数据到MySQL
我正在使用MySQL C API。 现在我在C中有一些Double Typed数据,我想将它们插入到数据库中。 我现在所知道的是使用mysql_real_query()和一个语句字符串来做到这一点。 我担心失去精确度,因为上面的过程涉及到双重字符串然后加倍。有没有办法避免这种情况?像直接发送双重二进制数据到MySQL?我假设MySQL实现与C相同的双倍。直接从C发送双键输入的数据到MySQL
您应该使用prepared statement和double
的占位符,然后您可以绑定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);
参考文献:
感谢。很有帮助。 – WiSaGaN