2017-02-08 11 views
1

プレースホルダー(?)を使用してPythonで(?)プレースホルダーを使用していますが、問題にWHERE句を追加するとSQLが許可されませんこれは、プレースホルダをグループ化するため、where句に6番目のプレースホルダを使用できないためです。私はそれがプレースホルダの第一グループと第六(装置識別子)をグループ化すると思うようpython(?)プレースホルダー

self.query.prepare("UPDATE tbl_dev (user_id, dev_ref,dev_mac,dev_ka_der_file_path,dev_ds_der_file_path,dev_type) VALUES (?,?,?,?,?,?) WHERE id=?;") 
self.query.bindValue(0, userID) 
self.query.bindValue(1, dev_id) 
self.query.bindValue(2, dev_mac) 
self.query.bindValue(3, dev_ka_cert) 
self.query.bindValue(4, dev_ds_cert) 
self.query.bindValue(5, dev_type) 
self.query.bindValue(6, devID) 

self.query.exec_() 

は、基本的には、最終的な装置識別子のプレースホルダを除く外ません。

は、ここに私のコードスニペットです。これはPython/MySQLでも可能ですか?

+1

あなたの 'update'構文は正しくありません。値は' values'指定であってはなりません。 –

+0

ありがとうございましたvkp、私の初期の仕事の解決策は、 '選択'句、SQL構文を指摘していただきありがとうございました – MikG

答えて

0

@vkpで指摘されている構文が正しくありません。作業中の解決策にはselect句があり、更新句にはグループ化された値はありません。解決策は次のとおりです。

self.query.prepare("UPDATE tbl_dev SET user_id=?,dev_ref=?,dev_mac=?,dev_ka_der_file_path=?,dev_ds_der_file_path=?,dev_type=? WHERE id=?;") 
self.query.bindValue(0, userID) 
self.query.bindValue(1, dev_id) 
self.query.bindValue(2, dev_mac) 
self.query.bindValue(3, dev_ka_cert) 
self.query.bindValue(4, dev_ds_cert) 
self.query.bindValue(5, dev_type) 
self.query.bindValue(6, devID) 

self.query.exec_() 
関連する問題