0

web.py を使用してフォーム POST を介してデータベース行を更新しようとしていますが、MySQL 構文エラーが発生します。私は一般的にPythonに慣れていないので、初心者の質問を許してください。私が実行しているコードは次のとおりです。

   def Update(webInput):
      db.update('category', where='category_name=' + webInput.category_name)
      return;

私が得ているエラーは

ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE category_name=' at line 1")

ありがとうございました

4

2 に答える 2

1

db.updateのドキュメントを確認してください。正しい呼び出しは次のようになります。

db.update('category', where='category_name = $category_name', vars=webInput, **webInput)

webInput設定する新しいデータを保持していると仮定します。

$category_namewhere句が抽出されvars、サニタイズされます(コードが機能したとしても、SQLインジェクションに対して脆弱です)。

于 2012-11-23T13:28:36.040 に答える
0

「カテゴリ」を更新するデータを渡すのを忘れているようです。

試す:

db.update('category', where='category_name=' + webInput.category_name, 'new data here')
于 2012-11-23T02:46:19.967 に答える