ich bin neu hier und will mich kurz vorstellen. Ich studiere, bin 23, komme aus Berlin und arbeite nebenbei gerne mit Python. Mittlerweile habe ich mich an ein kleines Projekt mit web2py gewagt, dass ich in Verbindung mit einer MySQL DB nutze.
Nun steh ich aber vor einem Problem, dass ich bis jetzt trotz langer Suche nicht beseitigen konnte. Es mag fuer einige von euch trivial erscheinen aber ich finde leider immer noch keine Loesung deswegen habe ich mich hier angemeldet.
Also ich moechte, dass externe User auf mein DB per Select Statement zugreifen koennen. Das funktioniert auch alles und ist sicher. Dazu gibt der User in ein HTML Formular sein SQL Statement ein und das wird ausgefuehrt. Mein Problem liegt jetzt darin:
Handelt es sich um ein falsches Statement sprich der SQL Ausdruck ergibt einen Syntax Error kann ich den Fehler abfangen und ausgeben, allerdings bekomme ich nicht den genau Fehler. Ich haette gerne, dass bei einem Synatx Error die ganz normale SQL Error Meldung alla '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 'from bla bla' at line 1 ' kommt!?
Wie kann kann ich die abfangen??
Hier mein bisheriger Aufbau:
Code: Alles auswählen
def sql_output():
try:
command=request.vars['command']
# if one char = ';' delete it otherwise LIMIT 10; is not working
command = command.replace(';','')
conn = MySQLdb.connect (XXX die Daten sind entfernt ;) )
cursor = conn.cursor ()
cursor.execute(command + " Limit 10;")
data = cursor.fetchall()
col_names = cursor.description
if data != None:
return dict(data=data,message=T(command),col_names=col_names)
cursor.close ()
conn.close ()
except:
return dict(data="",message=T('Error in SQL Syntax please try again.'),col_names="")

Vielen Dank fuer Hilfe, lindA