Struct in eine mysql datenbank Wie?
-
Hallo,
ich habe jetzt folgendes problem
ich habe jetzt ein struct 'client' und dieses wuerde ich gerne in eine mysqldb schreiben (blob).
Ich habe bissher die querys in einen buffer mit sprintf geschrieben und diesen dann einfach per mysql_query abgearbeitet. Nun ist das problem, wie kann ich einfach das gesamte struct hex ausgeben das ich das per INSERT INTO .... (0x%..?) inserten koennte.MfG Florian
-
Wieso willst du die struct hex ausgeben?
müsste eigentlich mit mysql_real_escape_string() gehen.
http://dev.mysql.com/doc/mysql/en/mysql-real-escape-string.htmlbei "from" gibst du nen zeiger auf deine struct mit (evtl. nach char * casten)
und für length sollte ein nettes sizeof(my_struct) herhalten.najo, und für "to" gibst du ein chararray mit, das 2 * sizeof(my_struct) + 1 gross ist (Falls alle Zeichen escaped werden müssen + binäre Null).
Da steht dann der fertige String drinnen, den man eigentlich mit nem normalen INSERT
einfügen können sollte.mfg
MartinPS: ned getestet, ohne gewähr
-
mhh, najo wenns ne andere moeglichkeit giebt das per mysql_query dann in nen blob zu speichern waer auch ok, ich wuerde den hex'string' nehmen und ihn dann einfach per 0x%s speichern xD....
fuer andere lösungen bin ich offen (ich denke is giebt weitaus bessere^^)
MfG Florian
-
wo liegt das Problem?
Ist doch grade der Sinn von mysql_real_escape_string(), ungültige Zeichen zu
escapen, dass sie keine Probleme mehr machen.Und ob z. B. eine Binäre Null als 0x00 oder als \0 in die Datenbank eingespielt wird macht doch keinen Unterschied.
Was soll da schlecht dran sein?
Und zumindest mit Integern und Doubles funktioniert das ganze wunderbar
(die stehen dann hinterher wirklich Binär drinnen)
-
Sirius_Black schrieb:
mhh, najo wenns ne andere moeglichkeit giebt das per mysql_query dann in nen blob zu speichern waer auch ok
mysql_real_query?
Ich arbeite derzeit auch viel mit einer mysql-db, falls du mal dein Struct und die Hex-Ausgabe postest kann man vll eher das Problem erkennen.