用clob保存大段的文本
if(!$this->validate()){
return false;
}
$model = new Article();
$model->TITLE = $this->TITLE;
$model->CID = $this->CID;
$model->CONTENT_DATA = $this->CONTENT_DATA; //CONTENT_DATA的类型为CLOB
$model->save();
会出现如下错误
SQLSTATE[HY000]: General error: 1461 OCIStmtExecute: ORA-01461: can bind a LONG value only for insert into a LONG column (/tmp/pdo_oci/oci_statement.c:159)
然后我重写了yii2中ocicommand这个类,修改的bindValues和bindPendingParams这个方法
protected function bindPendingParams()
{
foreach ($this->_pendParams as $name => $value) {
if(isset($value[2])){
$this->pdoStatement->bindParam($name, $value[0], $value[1], $value[2]);
}else{
$this->pdoStatement->bindParam($name, $value[0], $value[1]);
}
}
$this->_pendParams = [];
}
这样,再长的数据,都可以写入数据库,
但是每次更新,内容都会变少。。。
第一次写入
更新后变成
再更新会变的更少。。。。
实在无法理解。。。。
绝地无双