私は、学生の出席を記録するテーブルを持っています。表には学生ID用と週1、週2、週3の4つの列があります(すべての列は整数です)。出席は、特定の週に1回だけ入力することで記録されます(不在の場合はゼロ)。あなたが見ることができるようにPython、MYSQLデータベース
week_number=input('enter the week (week1/week2/week3')
id=int(input('enter student ID'))
sat="UPDATE Attendance2 SET %s=1 WHERE ID=%s "
cur.execute(sat, (week_number,id,))
conn.commit()
が、私は、ユーザーが参照する列が(それが何であるかを知らない:私は次のように更新ステートメントを使用して出席を追加したい時に私の問題は、ここにあります変数)、私は%s
の後ろにSETを使用したが、それは間違っています。ここで
は誤りです:
mysql.connector.errors.ProgrammingError: 1064 (42000): 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 ''week1'=1 WHERE ID=300' at line 1
任意のヘルプしてください?実行文に変数の列名を書き込むにはどうすればよいですか?私が唯一参加し、学生を更新しています
注意、
Hmm ... Bobby Tablesのように見えるかもしれません。 – cwallenpoole
みんな♥ボビーテーブル! BTW @ahmedは、可能性のある注入からあなたの入力をチェックし、保護することを決して忘れない。あなたのコードで、ユーザーが ';出席者2から削除1 = 1; - あなたが釘付けになるかもしれない。スマートにして、ホイールを改革しようとするのではなく、既存のライブラリを使ってあなたを批判したり、SQLAlchemyのような適切なORMを使用したりしてください。 – zmo
私はちょうどこれは私の最初のpythonとMYSQLコードの初心者です。ご清聴ありがとうございました。 – ahmed