儲存圖片指紋(一串亂碼)到mysql, 求分析

來源:互聯網
上載者:User
本帖最後由 JJ___JJ 於 2013-08-08 15:10:59 編輯

MySQL 亂碼

各位大大, 圖片指紋如下:

 

sql為:
 update test set `bitmap` ='?+W&+N{|\0Ox0\\$8)sld\"Z|y|\0ZZ!\0]P!Zw\Z\Zgm|p\"y^W|)Q,\0xc{\0\Z\\[#]pEXcto[ER`\'l{b&8P8j[w1y^t|d0YSMK![sj\0Kyww7)PE\ZIPv^m|\0\0\0{\0PK^\0y|x-e^|jcxc|`N' where id = 168; 

bitmap欄位為varchar 255
很奇怪的一件事, 直接php運行sql, 會報錯:
$query = "update test set `bitmap` ='".mysql_real_escape_string($bitmap)."' where id = {$picture['id']};";1366: Incorrect string value: '\xDD[+W&+...' for column 'bitmap' at row 1


直接copy這段sql去mysql用戶端執行, 是沒問題的. 目前認為是copy的時候, 這段指紋亂碼沒有能copy完整, 或者已經變了,
如果不加mysql_real_escape_string, 而是將指紋亂碼儲存到文本, 是無法copy出來 只能粘貼處部分.
求大大們幫忙分析, 非常感謝.


回複討論(解決方案)

大大給點意見啊

儲存 base64 編碼,可免去一切煩惱

直接儲存,則bitmap欄位必須為二進位的
但並不保證一定能儲存成功

儲存 base64 編碼,可免去一切煩惱

直接儲存,則bitmap欄位必須為二進位的
但並不保證一定能儲存成功
好的, 謝謝, 我試試.

儲存 base64 編碼,可免去一切煩惱

直接儲存,則bitmap欄位必須為二進位的
但並不保證一定能儲存成功
感謝版主大大提醒, 已經成功儲存到資料庫. 取出來也沒有問題.
不過bitmap欄位為什麼必須為二進位的, 我現在儲存為char類型, 有問題麼, 我看了下結果長度固定, 而且二進位類型向來少用, 所以選擇了char類型.

理論上說,資料庫是放進去什麼,取出來還是什麼
但資料庫具體實現時為瞭解決搜尋的問題,都做了一些個人化調整
比如 mysql 的字元類型欄位 char、varchar、txt 都不區分大小寫,都有一個串連校對。這樣便於文字的處理
但是二進位內容並不需要資料庫幹涉,幹涉了反而要出問題

位元組型可以記錄例如 [del] [null] 之類的位元組,但字串就沒法記錄了,所以要原樣保留就要用位元組
或者通過可逆編碼(base64)把上述不可視位元組轉為可視字元才能儲存,提取是反向解碼就是了

理論上說,資料庫是放進去什麼,取出來還是什麼
但資料庫具體實現時為瞭解決搜尋的問題,都做了一些個人化調整
比如 mysql 的字元類型欄位 char、varchar、txt 都不區分大小寫,都有一個串連校對。這樣便於文字的處理
但是二進位內容並不需要資料庫幹涉,幹涉了反而要出問題
非常感謝.

位元組型可以記錄例如 [del] [null] 之類的位元組,但字串就沒法記錄了,所以要原樣保留就要用位元組
或者通過可逆編碼(base64)把上述不可視位元組轉為可視字元才能儲存,提取是反向解碼就是了
謝謝提醒, 已經這樣做了.

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.