2017-11-19 11 views
-1

私は頻繁にpymysqlを使用してMySQLサーバーにデータを挿入します。PyMySQLを使用してMySQLに文字列を挿入するときの構文エラー

文字列を挿入する際

は、私は通常(ただし、毎回の)受信:pymysql.err.ProgrammingError:

:(1064、...)私は(varchar型を参照)のコードを使用して文字列を挿入すると
cursor.execute("Insert into table (column) values (%s)", (stringVar)) 

は、一般的に、私が何かしなければならない。

cursor.execute("Insert into table (column) values ('"+stringVar+"')")) 

をしかし、時にはそれは同じエラーをスローし、私のような何かをする必要があります:

stringVar="'"+stringVar       
stringVar=stringVar+"'"   
cursor.execute("Insert into table (column) values ("+stringVar+")") 
0123を

これは、この操作をプログラムするのは現実的ではありません。

私は何か単純なものを台無しにしていると思うが、これが何であるかわからない。私は多くpymysqlを使用して、このエラーは本当に私に着用し始めている。どんな助けでも大歓迎です!

+0

コードをフォーマットし、完全なエラーメッセージを含めてください。 – Shadow

+0

'cursor.execute("テーブルtable_name(列)の値(?)への挿入 "、(stringVar、))' ' – Yay295

答えて

0
cursor.execute('INSERT INTO table (column) VALUES (?)', (stringVar,)) 

文字列をそのようなクエリに直接書式設定しようとするときは、基本的に常に間違っていることを示す記号です。私が知っているすべてのpythonデータベースインターフェイスは、上記のようなクエリにパラメータを渡す方法があります。 iterableにはstringVarが含まれている必要があります。

関連する問題