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
valueX'.
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.
