2010-09-10 3 views
2

Je suis en train de stocker une valeur hexadécimale (\ de XC1) dans la base de données MySQL. Quand j'imprimer avec PHP Que, je reçois: xC1lcool au lieu du mot.PHP et MySQL: Stocker et imprimer ombles hex

INSERT INTO véhicules VALUES (1, "Ford", « Ka ROCAM Flex '25850,00, 1998, 1999,' Red '15000' \ xC1lcool, l'essence GNV '' Climatisation, 4 portes, échange automatique '' image1.jpg, imagem2.jpg, imagem3.jpg, imagem4.jpg, imagem5.jpg; '), (2,' Ford '' Ka ROCAM Flex '223850,00, 1999, 2001,' Silver '10000' \ xC1lcool; CNG '' Air-Conditioning, 4 portes, l'échange automatique; '' image1.jpg; imagem2.jpg; imagem3.jpg; imagem4.jpg; imagem5.jpg; «), (3, 'Ford', 'Fiesta', 21380,00, 1998, 2002, 'Black', 23043 'Gasolina', '', « image1.jpg; imagem2.jpg; imagem3.jpg; imagem4.jpg; imagem5.jpg; «);

Comment pourrais-je faire cela?

+0

Possible en double: http: // stackoverflow. com/questions/291305/insertion-hex-valeur en-mysql – shamittomar

+0

fait le commentaire, pas de code. ces longues lignes me effrayent –

Répondre

0

Utilisez la fonction MySQL UNHEX() avec CONCAT(). Comme cette

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

Vous pouvez stocker des données binaires complètes, comme une image ou PDF dans une base de données MySQL. Lorsque vous insérez la valeur que vous assurez-vous de la "insert ... values(".mysql_real_escape_string($value).")";. Il est recommandé d'utiliser le type de données blob pour cette colonne, mais vous pouvez utiliser le varchar si vous voulez vraiment. Après Lorsque vous sélectionnez le temps Qué Out il sera normal que vous ne devez pas faire autre chose. Dans le cas d'une image, il suffit d'utiliser la header(content-type: ...) et imprimer la variable Normalement, et l'image sera affichée à l'utilisateur final.

1

\x n'est pas une séquence d'échappement valide. séquences valides sont détaillées à http://dev.mysql.com/doc/refman/5.0/en/string-syntax.html

le manuel Citant:

Pour toutes les autres séquences d'échappement, anti-slash est ignoré. Cela est, le caractère échappé est interprété la si elle n'a pas échappé. Par exemple, "\ x" est juste "x".

Vous pouvez spécifier la chaîne complète en hexadécimal:

SELECT 0x61626364 -- Prints abcd 

Si vous voulez mélanger les deux styles, vous devez concaténer:

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