Mysql Datenimport mit Startparametern

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
DaPepsi
User
Beiträge: 2
Registriert: Freitag 2. Mai 2008, 15:37

Freitag 2. Mai 2008, 15:50

Hidiho,

Code: Alles auswählen

#!/usr/bin/python

import sys
import MySQLdb

conn = MySQLdb.connect (host = "localhost",
        user = "x",
        passwd = "x",
        db = "x")

cursor = conn.cursor()

print "%s %s %s" % (sys.argv[1], sys.argv[2], sys.argv[3])

def put():
        cursor.execute ("""
                INSERT INTO stats (pin, nr, date)
                VALUES
                        ('%s', '%s', '%s' % (sys.argv[1], sys.argv[2], sys.argv[3]))
                """)


put()
conn.close()
cursor.close()
Das Programm wird ./import.py 1 2 3 gestartet.
Mein Ziel ist es, dass diese Parameter in pin, nr und date importiert werden. Mit meinem Versuch hats nicht geklappt.. Was mach ich falsch und wie mach ichs besser? Bin ein Anfänger ;)

Error ist:
Traceback (most recent call last):
File "./stat.py", line 23, in ?
put()
File "./stat.py", line 16, in put
cursor.execute ("""
File "/usr/lib/python2.4/site-packages/MySQLdb/cursors.py", line 163, in execute
self.errorhandler(self, exc, value)
File "/usr/lib/python2.4/site-packages/MySQLdb/connections.py", line 35, in defaulterrorhandler
raise errorclass, errorvalue
_mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[1], sys.argv[2], sys.argv[3]))' at line 3")

Mfg,
Pep
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Freitag 2. Mai 2008, 20:07

DaPepsi hat geschrieben:Was mach ich falsch und wie mach ichs besser?
Du benutzt keine parametrisierten SQL-Queries. Besser machst du es, wenn du dir [wiki]Parametrisierte SQL-Queries[/wiki] durchliest und anwendest.
BlackJack

Samstag 3. Mai 2008, 09:05

@DaPepsi: Ich denke durch das Syntaxhighlighting sieht man ganz gut, was Du das versuchst der Datenbank als SQL an zu drehen. Es sollte eigentlich klar sein warum die das nicht mag.
DaPepsi
User
Beiträge: 2
Registriert: Freitag 2. Mai 2008, 15:37

Samstag 3. Mai 2008, 22:03

Danke euch für die Hilfe ;)
War echt ganz schön blöd!

Mfg,
Pep
Antworten