不幸的是,该公司在内部测试IM时遇到了MYSQL_DATA_TRUNCATED错误,日志记录发生在调用mysql_stmt_fetch时。鉴于之前的经验,应该是给定结果集绑定区域长度不足造成的,反复检查也没有发现问题。我在代码中有对应关系,比如char(20),我在代码中定义了一个char buffer[20]数组来存储。它看起来是如此正确和完美。没有办法打印每一行的数据,找到错行的记录,发现字体和其他不一样。例如:123456789(半角)123456789(全角)这不是由我的输入空间控制的,而是由输入法控制的。对于全角字符,它的长度是半角字符的两倍,而且我的MySQL使用utf-8,因此在数据库中,全角字符的长度为3字节。从table_name中选择length(column),其中…;用这个打印长度来判断。此时,您必须考虑将代码中类型的长度与数据库字段(如全角字符或中文字符)的长度匹配的问题。数据库中的char(20)表示20个字符,而不是20个字节。注意这里,所以在取数据时不要用这个20作为结果集长度来获取数据。