unsigned long mysql_hex_string(char *to, const char
*from, unsigned long length)
Beschreibung
Diese Funktion dient der Erstellung eines gültigen SQL-Strings, den Sie in einer SQL-Anweisung benutzen können. Siehe Abschnitt 9.1.1, „Strings“.
Der String in from
ist im Hexadezimalformat
verschlüsselt, wobei jedes Zeichen als zwei
Hexadezimalziffern kodiert ist. Das Ergebnis wird in
to
eingesetzt und ein Nullbyte als
Abschlusszeichen angehängt.
Der String, auf den from
verweist, muss
length
Bytes lang sein. Den
to
-Puffer müssen Sie mindestens mit einer
Länge von length*2+1
Bytes zuweisen. Wenn
mysql_hex_string()
zurückkehrt, ist der
Inhalt von to
ein auf null endender String.
Der Rückgabewert ist die Länge des kodierten Strings ohne
das abschließende Nullzeichen.
Der Rückgabewert kann in eine SQL-Anweisung in einem der
Formate 0x
oder value
X'
eingesetzt werden. Allerdings enthält der Rückgabewert nicht
das value
'0x
oder X'...'
. Der
Aufrufer muss dieses Element selbst beisteuern, je nachdem,
für welches er sich entscheidet.
Beispiel
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)); }
Die im Beispiel verwendete Funktion
strmov()
stammt aus der
mysqlclient
-Bibliothek und funktioniert wie
strcpy()
, liefert jedoch einen Zeiger auf
die abschließende Null des ersten Parameters.
Rückgabewerte
Die Länge des in to
eingesetzten Werts
ohne die abschließende Null.
Fehler
Keine.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.