![](/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.