2010-09-10 25 views
2

我試圖存儲在MySQL數據庫的十六進制值(\ XC1)。當我打印闕用PHP,我得到:xC1lcool,而不是正確的字。PHP和MySQL:保存並打印字符十六進制

INSERT INTO車輛VALUES(1, 「福特」,「嘉RoCam的Flex '25850.00,1998年,1999年,' 紅 '15000' \ xC1lcool,汽油CNG '' 空調,4門,自動交換 '' image1.jpg; imagem2.jpg; imagem3.jpg; imagem4.jpg; imagem5.jpg; '),(2,' 福特 '' 嘉RoCam的Flex '223850.00,1999,2001,'銀 '10000' \ xC1lcool; CNG '' 空調,4門,自動交換; '' image1.jpg; imagem2.jpg; imagem3.jpg; imagem4.jpg; imagem5.jpg;「),( 3, '福特', '嘉年華',21380.00,1998,2002, '黑',23043 'Gasolina', '',「image1.jpg; imagem2.jpg; imagem3.jpg; imagem4.jpg; imagem5.jpg; 「);

我怎麼能這樣做呢?

+0

可能重複:HTTP://計算器。 COM /問題/ 291305 /插入-十六進制值 - 到 - MySQL的 – shamittomar 2010-09-10 17:26:51

+0

做出評論它,而不是代碼。這樣長的線嚇到我了 – 2010-09-10 17:48:43

回答

0

使用MySQL UNHEX()功能與CONCAT()。像這樣

insert into tablename values (CONCAT(UNHEX('C1'), 'other-part-of-string')) 
0

您可以存儲完整的二進制數據,如在MySQL數據庫中的圖像或PDF。當您插入值時,您確保"insert ... values(".mysql_real_escape_string($value).")";的。建議您使用BLOB數據類型爲列,但您可以使用VARCHAR,如果你真的想。後如果選擇闕失的時間將是正常的,你不必做任何事情。在一個圖像的情況下,只需使用header(content-type: ...)並打印出該變量通常,圖像將被顯示給終端用戶。

1

\x不是有效的轉義序列。有效序列在http://dev.mysql.com/doc/refman/5.0/en/string-syntax.html

詳述引述手冊:

對於所有其他的轉義序列, 反斜槓被忽略。也就是說,轉義字符解釋 的 如果它沒有逃過。例如, 「\ x」 是剛剛 「×」。

您可以用十六進制指定完整的字符串:

SELECT 0x61626364 -- Prints abcd 

如果要混合兩種風格,你必須來連接:

SELECT CONCAT('a', 0x6263, 'd') -- Prints abcd