unsigned long mysql_hex_string(char *to, const char
*from, unsigned long length)
Description
Cette fonction sert à créer une chaîne SQL valide que vous pouvez utiliser dans une requête SQL. See Section 9.1.1, « Chaînes ».
La chaîne de l'argument from
est encodée
au format hexadécimal, et chaque caractère prend alors deux
chiffres hexadécimaux. Le résultat est placé dans le
paramètre to
et un caractère nul termine
la chaîne.
La chaîne pointée par from
doit faire
length
octets de long. Vous devez allouer
le buffer to
à au moins longueur
* 2 + 1
de long. Lorsque
mysql_hex_string()
se termine, le contenu
de to
est une chaîne terminée par un
caractère nul. La valeur de retour est la taille de la
chaîne encodée, sans compter le caractère nul.
La valeur retournée peut être placée dans une commande SQL
en utilisant le format
0x
ou
value
X'
.
Cependant, la valeur de retour n'inclut pas les éléments de
syntaxe value
'0x
ou X'...'
. Le
code appelant doit fournir les éléments dont il a besoin.
mysql_hex_string()
a été ajouté en MySQL
4.0.23 et 4.1.8.
Exemple
char query[1000],*end; end = strmov(query,"INSERT INTO test_table values("); end = strmov(end,"0x"); end += mysql_hex_string(end,"What's this",11); end = strmov(end,",0x"); end += mysql_hex_string(end,"binary data: \0\r\n",16); *end++ = ')'; if (mysql_real_query(&mysql,query,(unsigned int) (end - query))) { fprintf(stderr, "Failed to insert row, Error: %s\n", mysql_error(&mysql)); }
La fonction strmov()
utilisée dans
l'exemple est incluse dans la bibliothèque cliente
mysqlclient
et fonctionne comme
strcpy()
mais retourne un pointeur sur le
caractère nul final du premier paramètre.
Valeur retournée
La taille de la valeur placée dans to
,
hormis le caractère nul final.
Erreurs
Aucune.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.