2017-05-29 18 views
0

データをテーブルに挿入するSQL関数を実行しようとしています。私はhereの例を説明していますが、スクリプトを実行するたびにデータはテーブルに挿入されず、スクリプトはメッセージを返しません。ここにコードです:私はおそらく間違っていることができますか?私が見sqlite3テーブルにデータを挿入しようとするとエラーが発生する

from flask import render_template, flash, redirect, request 
from app import app 
from .forms import LoginForm 
from .forms import RegistrationForm 
import sqlite3 as sql 

@app.route('/') 
@app.route('/index') 


@app.route('/registration', methods = ['GET','POST']) 
def registration(): 
    form = RegistrationForm() 

    if request.method == 'POST': 
     try: 
     card_id = request.form['card_id'] 
     pin = request.form['pin'] 
     account_id = request.form['account_id'] 


     with sql.connect("testDB.db") as con: 
      cur = con.cursor() 

      cur.execute("INSERT INTO atm_card (card_id,pin,account_id) VALUES (?,?,?,?)",(card_id,pin,account_id)) 

      con.commit() 
      msg = "Record successfully added" 
     except: 
     con.rollback() 
     msg = "error in insert operation" 

     finally: 
     return render_template("index.html", msg=msg) 
     con.close() 

    else: 
     return render_template("registration.html", form=form) 

答えて

1

一つの問題は、おそらくタイプミスか何か他のものは、あなたがあなたのINSERTVALUES句でプレースホルダを持っていますが、あなただけ列を指定しようとするように見えるということです。あなたの解決策は、問題@Tim Biegeleisenを解決

cur.execute("INSERT INTO atm_card (card_id,pin,account_id) VALUES (?,?,?)",(card_id,pin,account_id)) 
+1

:これまで

cur.execute("INSERT INTO atm_card (card_id,pin,account_id) VALUES (?,?,?,?)",(card_id,pin,account_id)) 

:これを変更 – tapeli

関連する問題