簡體   English   中英

不允許從數據類型varchar(max)隱式轉換為varbinary(max)。 使用CONVERT函數運行此查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM