0

私はoursqlに慣れていないので、私の無知を許してください。私は単にステートメントにパラメーターを渡そうとしています:

cursor.execute("blah_field = ? の blah_table から blah を選択", blah_variable)

これは blah_variable 内にあるものを char 配列として処理したため、「hello」を渡すと、1 つのパラメーターが予期されていたが 5 が指定されたことを示す ProgrammingError がスローされます。

ドキュメントを調べてみましたが、その例では変数を使用していません。ありがとう!

4

2 に答える 2

1

IT は一連のパラメータを期待しています。使用する:

[blah_variable]

于 2014-01-10T20:12:08.973 に答える
1

このcursor.execute()呼び出しには、params反復可能な引数が必要です。ドキュメントはそれを示唆するだけですが、コードは実際に引数をアンパックして別の関数に渡します:

# from oursqlx/cursor.pyx:121
# in Cursor.execute()
        else:
            stmt.execute(*params)

次のように呼び出しを表現する必要があります。

cursor.execute("select blah from blah_table where blah_field = ?", [blah_variable]) # brackets!
于 2014-01-10T20:13:16.587 に答える