![]() |
|
首页 │ Apache │ Linux│ Java│ MySQL│ 注册│帮助 | |||
本人在使用perl调数据库做INSERT操作的时候碰到了一个怪问题
就是原先我的字段类型是NTEXT,插入某记录时报SQL执行错误,但是只要将类型改为TEXT就可以成功执行.
长度原因已经查证过不是.又认为可能特殊字符造成错误,于是将SQL文打印出直接到库里面执行,居然OK,这时候字段类型为NTEXT
程序:
my $sth = $dbh && $dbh->prepare
("INSERT INTO ${pfx}logevent".
"(host, tslog, evclass, evtype, evsource, evuser, evtext)".
" VALUES (?, ?, ?, ?, ?, ?, '?')");
$rv = $sth && $sth->execute
($hostid, $tslog,
$evclass, $evtype, $evsource, $evuser, $evtext);
evtext 为问题字段
后来我将程序修改了一下,数据库类型仍旧用NTEXT型
my $sql = "INSERT INTO ${pfx}logevent".
"(host, tslog, evclass, evtype, evsource, evuser, evtext)".
" VALUES ('$hostid', '$tslog','$evclass', '$evtype', '$evsource', '$evuser', '$evtext')";
my $sth = $dbh && $dbh->prepare($sql);
$sth->execute();
居然也被我通过,虽然问题解决但是原因我还是不清楚,数据库使用的是SQLSERVER有没有高人知道原因的请告诉我,谢谢

