如果我对MySQL Connector/C库执行一个查询,那么返回的所有数据似乎都是直接char *格式的,包括数字数据类型。
例如,如果我执行一个返回4列的查询,所有列在MySQL中都是INTEGER,而不是返回4字节的数据(每个字节代表一个列行值),那么我实际上是返回4个ASCII编码的字符字节,其中1实际上是一个带数值49的字节(ASCII表示1)。
这是准确的还是我只是遗漏了一些完整的东西?
我真的需要在代码中将返回字节的atoi转换成int吗?还是有一种机制可以直接从MySQL客户机中获取本机C数据类型?
我想我真正的问题是:这个mysql_store_result结构是否以一种我的应用程序代码可以绕过的方式将数据转换成ASCII编码的表示?

最佳答案

我相信数据是以MySQL协议中的文本形式通过网络发送的(我刚刚用Wireshark确认了这一点)。所以这意味着mysql_store_result()不是在转换数据,只是在接收数据时简单地传递数据。MySQL实际上将整数作为文本发送。我同意这对我来说也是个奇怪的设计。

关于mysql - 从MySQL Connector/C查询返回的数据不是 native C数据格式吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38399219/

10-11 19:28
查看更多