2017-02-24 4 views
0

私のSQL挿入クエリがうまく動作しません。 私のCourse_Idは、現在、別のテーブルCourseMasterの外部キーです。 CourseMasterのすべての情報が入力されたようです。Python CGIでのMySQLへのプログラミング

Student_Idフォーム入力もまた私に疑問符である。 私はhidIdの隠しフォームタイプを含んでいます。それが正しいかどうかはわかりません。 お願いします。

import mysql.connector 
import cgi 
import cgitb;cgitb.enable() 
import sys 


print "Content-Type: text/html\n\n" 

#connection of my database 
db = mysql.connector.connect(user='root',password = 'root', 
          host = 'localhost' ,port='8889',database = 'StudentData') 


cursor = db.cursor() 


form = cgi.FieldStorage() 

id="" 

first_name = "" 

last_name = "" 

residential_address = "" 

phone_no = "" 

Gender = "" 

Course_Id = "" 

if form.has_key("hidId"): 
    id=form["hidId"].value 
elif form.has_key("id"): 
    id=form["id"].value 

if form.has_key("first_name"): 
    first_name = form["first_name"].value 
    print "<p>name</p>" 
    print first_name 
if form.has_key("last_name"): 
    last_name = form["last_name"].value 
    print "<p>name</p>" 
    print last_name 
if form.has_key("residential_address"): 
    residential_address = form["residential_address"].value 
    print "<p>residential_address</p>" 
    print residential_address 
if form.has_key("phone_no"): 
    phone_no = form["phone_no"].value 
    print "<p>phone_no</p>" 
    print phone_no 
if form.has_key("Gender"): 
    Gender = form["Gender"].value 
    print "<p>Gender</p>" 
    print Gender 
if form.has_key("Course_Id"): 
    Course_Id = form["Course_Id"].value 
    print "<p>Course_Id</p>" 
    print Course_Id 

# Insert Data into Table StudentMaster 
cursor.execute('''INSERT INTO StudentMaster 
        (Student_Id,Student_FirstName,Student_LastName,Course_Id,Gender,Residential_Address,PhoneNo) 
        VALUES(%s,%s,%s,%s,%s,%s,%s)''', 
        (id,first_name,last_name,Course_Id,Gender,residential_address,phone_no)) 

cursor.lastrowid 


db.commit() 

cursor.close() 
db.close() 

**これは私のエラーメッセージでした。あなたのIDが全てCourseMasterで正しく設定されている場合

**<class 'mysql.connector.errors.IntegrityError'>: 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`studentdata`.`studentmaster`, CONSTRAINT `Course_ID Foreign` FOREIGN KEY (`Course_Id`) REFERENCES `CourseMaster` (`Course_Id`)) 
     args = (1452, '1452 (23000): Cannot add or update a child row: ...rse_Id`) REFERENCES `CourseMaster` (`Course_Id`))', u'23000') 
     errno = 1452 
     message = '' 
     msg = u'Cannot add or update a child row: a foreign key ...rse_Id`) REFERENCES `CourseMaster` (`Course_Id`))' 
     sqlstate = u'23000'**** 

答えて

0

、それはタイプの問題かもしれません。 フォームの値を文字列から数値に変換する必要があるかどうかを確認します。 クエリ

+0

を実行する前に

Course_Id = int(Course_Id) 

ような何かを試してみてくださいありがとうございました。 –

+0

私は役に立ちましたか?もしそうなら、受け入れられた答えとしてマークしてください。 –

関連する問題