2017-06-16 2 views
0

In der Python-Softwaresprache gibt die str-Variante beim Hinzufügen zur MySQL-Datenbank einen Fehler aus. Für mich ist dies das Problem von Zeichen. Können Sie mir helfen?Python MySQL-Datenbank, Datenaktualisierungsfehler?

Die Zeilen des Codes, die ich schrieb, sind am unteren Rand.

rezerve='Aşkım Nasılsın?' 
new_status = telStatus + 1 
try: 
    tablo_birak = "UPDATE denemetablodd SET status='%s', rezerve='%s' WHERE ıd=1" % (str(new_status), str(rezerve)) 
    imlec.execute(tablo_birak) 
    mysqlBaglanti.commit() 
except: 
    mysqlBaglanti.rollback() 
+0

Können Sie in Ihrer Frage den genauen Fehler python ausgibt? – JoshKopen

+0

Sie sollten eine vorbereitete Anweisung verwenden, anstatt die Zeichenfolge zu ersetzen. – Barmar

+0

@JoshKopen, Dies ist der Fehler, den ich bekomme. UnicodeDecodeError: 'ascii' Codec kann Byte 0xc3 an Position 0 nicht dekodieren: Ordnungszahl nicht im Bereich (128) –

Antwort

0

Ihr Problem ist, dass Sie keine Werte verwenden, die auf einem Ascii-Diagramm sind. Viele Programme verwenden nur Symbole, die sich in den ersten 128 ASCII-Werten befinden (http://www.asciitable.com/index/asciifull.gif). Zeichen wie das S mit der darunter liegenden Zeile werden von diesen Programmen nicht akzeptiert. Obwohl ich weiß, dass dies ein Teil dieser Sprache sein mag, wäre mein bester Rat, diese in die engste englische Alphabet-Approximation zu ändern, sonst werden Sie diese Version von mySQL nicht verwenden können. Macht vielleicht den Wert von $ rezerve zu "Askim Nasilsin"? wenn Sie in der Lage sein möchten, mySQL zu verwenden.

+0

Ich muss diesen Text in seiner ursprünglichen Form verwenden. Habe ich eine Chance, es mit Ascii kompatibel zu machen? beispielsweise; rezerve.encode ('utf-8') –

+0

Das würde funktionieren. Sie müssen nur sicherstellen, dass alle Antworten ASCII sind. Vergessen Sie nicht, wenn Sie zurücklesen, um sie dann zu entschlüsseln. – JoshKopen