問題是DBI
的insert
在插入到MS SQL服務器時留下長的字符串被截斷。這裏是我的代碼:使用perl DBI插入的文本被截斷
my $insert = $dbh->prepare("INSERT INTO my_table (field_1, field_2) values (?, ?)");
$insert->execute($value_1, $value_2);
其中field_2
有varchar(100)
和$value_2
數據類型是用空格90個字符,但沒有其他特殊字符的文本字符串。
語句執行後,沒有錯誤提出,我檢查了數據庫,顯然實際插入$value_2
是在的性格,這是一個普通的英語單詞的中間被截斷(即不是一個特殊字符)。
我試圖將field_2
的數據類型更改爲varchar(150)
和text
。我也用$dbh->quote($value_2)
代替$value_2
。但他們沒有幫助。
這是怎麼發生的?我該怎麼辦?謝謝!!
您是否確定在連接上設置了RaiseError?這是什麼平臺?你正在使用哪種DBD以及那個驅動程序? – bohica
每次都受到相同的字符串影響,或者無論輸入什麼字符串,都會發生這種情況。 – shaneburgess
輸入數據是什麼字符編碼?數據庫期望它處於什麼字符編碼? –