小编Ben*_*192的帖子

使用C api解决MYSQL截断问题

我正在使用MYSQL C API的预准备语句,我遇到截断问题.mysql_stmt_fetch()总是回来MYSQL_DATA_TRUNCATED,我不明白为什么.有人可以告诉我数据被截断的原因,以帮助我解决这个问题吗?我能想到的唯一原因是我的缓冲变量不是正确的类型,但我认为它们是正确的类型.如果您有兴趣,我使用的代码如下.我还展示了我的表及其结构的副本,我直接从MYSQL客户端的命令中获取.

关于代码的一些注意事项:

我已修改它以打印出值,即使它返回截断的数据.当我这样做时,第一个字段似乎正确打印,但浮点字段和日期时间字段是乱码.此外,它似乎读取正确的行数.

大多数代码都是错误检查各种函数调用.这些错误检查都没有被触发 - 或者至少没有一个像你期望的那样打印出消息.唯一的错误指示是MYSQL_DATA_TRUNCATEDfetch调用返回的值.

描述测量表:

+------------+----------+------+-----+---------+-------+
| Field      | Type     | Null | Key | Default | Extra |
+------------+----------+------+-----+---------+-------+
| nodeId     | int(11)  | NO   | PRI | NULL    |       |
| recordtime | datetime | NO   | PRI | NULL    |       |
| slevel     | float    | YES  |     | NULL    |       |
+------------+----------+------+-----+---------+-------+
Run Code Online (Sandbox Code Playgroud)

目前的测量内容表:

+--------+---------------------+--------+
| nodeId | recordtime          | slevel |
+--------+---------------------+--------+
|      1 | 2015-09-22 …
Run Code Online (Sandbox Code Playgroud)

c mysql api truncation

4
推荐指数
1
解决办法
408
查看次数

标签 统计

api ×1

c ×1

mysql ×1

truncation ×1