datei in ein mysql blob übergeben.

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
rogen
User
Beiträge: 85
Registriert: Dienstag 29. März 2005, 17:45
Wohnort: neustift
Kontaktdaten:

hallo

ich möchte eine datei in meine mysql datenbank übertragen.
leider bekomme ich immer wieder fehler wenn ein ' in der datei ist.

zippen funkioniert auch nicht.

wie kann man das lösen.

mfg

gerhard
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

wird das ' benötigt wenn ja

datei auslesen, auf denausgelsenen text

mystring.replace("'", '"')
rogen
User
Beiträge: 85
Registriert: Dienstag 29. März 2005, 17:45
Wohnort: neustift
Kontaktdaten:

ja , denn wenn ich ein bild in die datenbank spielen will
geht das nicht .
BlackJack

rogen hat geschrieben:ich möchte eine datei in meine mysql datenbank übertragen.
leider bekomme ich immer wieder fehler wenn ein ' in der datei ist.

zippen funkioniert auch nicht.

wie kann man das lösen.
Das quoten dem Datenbankmodul überlassen, also den zweiten Parameter von der `cursor.execute()` Methode benutzen.
rogen
User
Beiträge: 85
Registriert: Dienstag 29. März 2005, 17:45
Wohnort: neustift
Kontaktdaten:

ich mache es so und es geht nicht

Code: Alles auswählen

cursor = self.conn.cursor()
a = "INSERT INTO anhang VALUES(0,'1','%s','%s')" % (name, anhang)
cursor.execute(a)
cursor.close()
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:Das quoten dem Datenbankmodul überlassen, also den zweiten Parameter von der `cursor.execute()` Methode benutzen.
Hallo BlackJack,

ich habe einen Vorschlag, da du oft der bist, der auf das Datenbank-Quoting hinweist: du könntest eine Seite im Wiki erstellen und darauf dann im Forum verlinken. Dann kann jeder der dies Problem mit der Datenbank hat, direkt nachlesen warum man das Quoting der Datenbank überlassen sollte und wie das geht.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

rogen hat geschrieben:ich mache es so und es geht nicht

Code: Alles auswählen

cursor = self.conn.cursor()
a = "INSERT INTO anhang VALUES(0,'1','%s','%s')" % (name, anhang)
cursor.execute(a)
cursor.close()
Und machen solltest Du es so:

Code: Alles auswählen

cursor = self.conn.cursor()
a = "INSERT INTO anhang VALUES(0, '1', %s, %s)"
cursor.execute(a, (name, anhang))
cursor.close()
Jetzt ist das Datenbankmodul dafür verantwortlich die Daten entsprechend in die Anfrage hinein zu formatieren.
rogen
User
Beiträge: 85
Registriert: Dienstag 29. März 2005, 17:45
Wohnort: neustift
Kontaktdaten:

super danke
BlackJack

Leonidas hat geschrieben:Hallo BlackJack,

ich habe einen Vorschlag, da du oft der bist, der auf das Datenbank-Quoting hinweist: du könntest eine Seite im Wiki erstellen und darauf dann im Forum verlinken. Dann kann jeder der dies Problem mit der Datenbank hat, direkt nachlesen warum man das Quoting der Datenbank überlassen sollte und wie das geht.
Im Prinzip gerne, aber so eine Seite gibt's schon, wie ich gerade festgestellt habe: [wiki]Parametrisierte SQL Queries[/wiki]

Jetzt muss ich nur noch daran denken, darauf zu verweisen, wenn das Thema wieder auf den Tisch kommt. :-)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:Im Prinzip gerne, aber so eine Seite gibt's schon, wie ich gerade festgestellt habe: [wiki]Parametrisierte SQL Queries[/wiki]

Jetzt muss ich nur noch daran denken, darauf zu verweisen, wenn das Thema wieder auf den Tisch kommt. :-)
Huch, die Seite ist ja gut versteckt - aber jetzt weiß ichs und werde zukünftig auch darauf verweisen. Schön :)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten