テーブル内の一部のデータは更新されますが、クエリが機能しないSQLクエリをPyQt5に書き込もうとしています。私は無数のフォーラムを読んだが、私のコードが正しいと言うことができる限り、私はまた、ドキュメントを前に読んだので、多分私は何かを欠いている?バインディングを使用したPyQt SQLクエリ
私はPyQt5、python3.5およびSQLITEを使用しています。次のコード(最終エラー/ lastQuery示されていない):
self.sqlWrite('ct','MarkerSize',123)
def sqlWrite(self,tbl,var,val):
query = QtSql.QSqlQuery(self.db) # First create query instance.
# Prepare query with placeholders, then bind values.
query.prepare('UPDATE :tbl SET value=:val WHERE property=:var')
query.bindValue(0,tbl)
query.bindValue(1,val)
query.bindValue(2,var)
# Finally execute query.
query.exec_()
...エラーが発生します。
near "?": syntax error Unable to execute statement
near "?": syntax error Unable to execute statement
UPDATE :tbl SET value=:val WHERE property=:var
Parameter count mismatch
は、私はプロットを失ったことがありますか?私は何が欠けていますか?
ありがとうございます。
ただの推測:クエリのdriverを使用し、識別子を逃れるために、より汎用的な方法について
:後者の場合は、あなただけの通常の文字列補間を使用する必要があります:文字列値のUPDATE文でプレースホルダの周りにエスケープ文字(一重引用符または二重引用符)が必要ですか? –