0

以下のように実行時にPython2.6でSQLステートメントを作成したいと思います。

SQL = SELECT * FROM table1 where col1 LIKE '%somthing%'

上記のものはデータベースサーバーで正常に実行されていますが、Pythonでこの文字列を作成しているときに問題が発生しています。文字列形式%sを使用して変数を追加しています。私のPythonコードは次のようになります

var = "somthing"

SQL = "SELECT * FROM table1 where col1 LIKE '%%s%'" % var

以下のトレースバックを取得します

Traceback (most recent call last):
  File "<stdin>", line 8, in <module>
ValueError: unsupported format character ''' (0x27) at index 247
4

2 に答える 2

5

SQLには文字列フォーマットを使用しません。代わりにSQLパラメータを使用してください。

%そうは言っても、あなたはそれを2倍にすることによって逃げることができます%%

SQL = "SELECT * FROM table1 where col1 LIKE '%%%s%%'" % var

通常の警告としての必須のXKCDリファレンス

于 2013-03-20T11:02:31.333 に答える
0

または、str.format

SQL = "SELECT * FROM table1 where col1 LIKE '%{}%'".format(var)
于 2013-03-20T11:03:02.043 に答える