2017-06-16 8 views
0

Pythonソフトウェア言語では、MySQLデータベースに追加するときにstrの亜種がエラーになります。私には、これはの問題です。お手伝いできますか?Python MySQLデータベース、データ更新エラー?

私が書いたコード行は一番下にあります。

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

pythonが出力している正確なエラーをあなたの質問に投稿できますか? – JoshKopen

+0

文字列の代わりに準備されたステートメントを使用する必要があります。 – Barmar

+0

@JoshKopen、 これは私が間違っていることです。 UnicodeDecodeError: 'ascii'コーデックは、位置0のバイト0xc3をデコードできません:範囲内の序数(128) –

答えて

0

あなたの問題は、アスキーチャートにある値を使用していないことです。多くのプログラムでは、最初の128個のascii値(http://www.asciitable.com/index/asciifull.gif)にあるシンボルしか使用しません。その下の行のSなどの文字は、これらのプログラムでは受け入れられません。私はこれらがこの言語の一部であるかもしれないと理解していますが、私の最善のアドバイスは、これを最も近い英語のアルファベット近似に変更することです。そうしないと、このバージョンのmySQLを使用できなくなります。おそらく$ rezerveの価値を "Askim Nasilsin"にするのでしょうか? mySQLを使用できるようにするには

+0

このテキストを元の形式で使用する必要があります。 Asciiとの互換性を持たせる機会がありますか?例えば; rezerve.encode( 'utf-8') –

+0

これはうまくいくでしょう。すべての回答がASCIIであることを確認するだけです。読んでいるときにそれらをデコードすることを忘れないでください。 – JoshKopen

関連する問題