![](/img/trans.png)
[英]Error : Implicit conversion from data type varchar to varbinary(max) is not allowed. Use the CONVERT function to run this query
[英]Implicit conversion from data type varchar(max) to varbinary(max) is not allowed. Use the CONVERT function to run this query
我在开发中使用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 / 4QxnRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAMAAAExAAIAAAAAAAAAAAAAgEyAAIAAAAUAAAAAAAkIdp'开头的标识符太长。 最大长度为128`
我错过了什么?
编辑:在更改为$this->attributes['item_picture'] = DB::raw("CONVERT(VARBINARY(MAX), '". $value ."')");
之后,我以某种方式得到了这项工作$this->attributes['item_picture'] = DB::raw("CONVERT(VARBINARY(MAX), '". $value ."')");
; 注意,我在DB::raw
中将双引号切换为单引号,反之亦然。 也许有人可以解释为什么
我以某种方式获得这份工作后
$this->attributes['item_picture'] = DB::raw("CONVERT(VARBINARY(MAX), '". $value ."')");;
注意,我在DB::raw
中将双引号切换为单引号,反之亦然。 也许有人可以解释为什么
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.