我在开发中使用 MySQL,以longblob
数据类型存储 base64 图像。
但是在我将数据库更改为 MS SQL 和数据类型后尝试插入数据时出现以下错误varbinary(max)
不允许从数据类型 varchar(max) 到 varbinary(max) 的隐式转换。使用 CONVERT 函数运行此查询
所以我放了一个变异器来解决这个问题,如下所示,
public function setItemPictureAttribute($value)
{
$this->attributes['item_picture'] = DB::raw('CONVERT(VARBINARY(MAX), "'. $value .'")');
}
但是在尝试存储base64图像时出现以下错误;
以 '/9j/4QxnRXhpZgAATU0AKgAAAAgABwESAAMAAAAAAAAAAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAAAAAAAAExAAIAAAAeAAAAcgEyAAIAAAAUAAAAkIdp' 开头的标识符过长。最大长度为 128`
我错过了什么?
编辑:我改成后不知何故得到了这项工作$this->attributes['item_picture'] = DB::raw("CONVERT(VARBINARY(MAX), '". $value ."')");
;请注意,我用单引号切换了双引号,反之亦然DB::raw
。也许有人可以解释为什么