![]() |
binärdatei in datenbank speichern
hallo. ich möchte eine binärdatei in einer mysql-datenbank speichern.
die datei soll in ein blob feld. das problem ist aber das in meiner anfrage syntaxfehler auftreten wenn diese binärdatei ein ' enthält. hier die anfrage:
Delphi-Quellcode:
wenn dann datei z.b. #+&§=NV203'qcvc8qnv6 ist gibts nen syntax-error.
'INSERT INTO dateien(`name`,`datei`) VALUES(''' + filename + ''',''' + datei + ''')'
wie kann ich diesen fehler vermeiden? |
Re: binärdatei in datenbank speichern
Hallo,
normalerweise gibt es extra Funktionen um BLOBs in eine DB zu bekommen, aber MySQL scheint das nicht zu geben... und sowas nennt sich Datenbank. Auf der Manual Seite wird von einem User vorgeschlagen die Daten base64 codieren (base64_encode/base64_decode) - auch wenn das BLOBs eigentlich ad ab surdum führt ist das wohl z.Zt. die einzige Möglichkeit. |
Re: binärdatei in datenbank speichern
das ist keine fehlende MySQL-Funktion sondern die funktion muß in der Programmiersprache existieren. Die MySQL-Api stellt sie nämlich zur verfügung. Unter PHP verwendet man am besten addslashes(); es wird sicher irgendwo eine Delphi-Überstzung geben
|
Re: binärdatei in datenbank speichern
Hi Markus,
es ist eigentlich eine endlose Sache. Du kannst das Query so
Delphi-Quellcode:
oder so
'INSERT INTO dateien(`name`,`datei`) VALUES(''' + filename + ''',''' + datei + ''')'
Delphi-Quellcode:
hinzufügen.
'INSERT INTO dateien(`name`,`datei`) VALUES("' + filename + '","' + datei + '")'
Im ersten Fall musst du jedes ' durch \' ersetzen, im zweiten Fall jedes " mit \". Dazu kannst du z.B. ![]() Greetz alcaeus |
Re: binärdatei in datenbank speichern
ja auf die lösung war ich auch schon gekommen aber ich dachte das das so umständlich is das es da doch eigendlich was anderes geben muss... (ich hätte halt aucch gran gehabt das ich die datei dann genau so wie sie is in der datenbank hab ohne dran rum zu ändern)
dann mach ichs halt jetzt mal so... edit: habs grad probiert und es hilft leider nix. der findet dann einfach wo anders nen fehler wo zwar kein solches zeichen vorkommt aber trotzdem irdgendwas nicht passt. |
Re: binärdatei in datenbank speichern
Wie sprichst du die Datenbank an? ADO, DAO, Direct MySQL, ODBC, OLEDB, ....?
In ADO nennt sich das ADODB.Stream. Bei den andere weis ich das leider nicht. Über einen SQL String kannst du keine BinärDaten speichern. Da diese Daten umgewandelt werden in ZB String. Also zusätzliche Funktionen nutzen. |
Re: binärdatei in datenbank speichern
steht oben ;) mysql
ich mach das ganze übrigens in php. ich hab mir nur gedacht da das hier ja eigendlich ein delphiforum is kann ich das query ja mal im delphi style posten ;) |
Re: binärdatei in datenbank speichern
|
Re: binärdatei in datenbank speichern
MySQL ist die Datenbank, und nicht die Schnittstelle die du nutzt um MySQL abzufragen. Die Schnittstelle die du nutzt ist also PHP? Dann bist du hier im falschem Forum. Sorry.
|
Re: binärdatei in datenbank speichern
Hi Markus,
poste mal wie du das Query in php zuweist. Und das gehört jetzt wohl eher nach Programmieren Allgemein. Greetz alcaeus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz