使用perl DBI插入截断的文本

时间:2011-07-01 15:08:48

标签: sql perl dbi truncated

问题是DBI的{​​{1}}在插入MS SQL服务器时会留下长字符串。这是我的代码:

insert

其中my $insert = $dbh->prepare("INSERT INTO my_table (field_1, field_2) values (?, ?)"); $insert->execute($value_1, $value_2); 的数据类型为field_2,而varchar(100)是一个90个字符的文本字符串,其中包含空格但没有其他特殊字符。

执行语句后,没有引发错误,我检查了数据库,显然实际插入的$value_2被截断为 80th 字符,这是在常规字符的中间英文单词(即不是特殊字符)。

我尝试将$value_2的数据类型更改为field_2varchar(150)。我还使用text代替$dbh->quote($value_2)。但他们没有帮助。

为什么会这样?我该怎么办? THX !!

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

我会说尝试各种字符串,看看它们是否都表现得一样。这可能是davorg建议的编码问题。我记得MySQL中的默认排序规则是瑞典语或Latin1,所以在MySQL中你可能想要将你的排序规则更改为utf8_general_ci。