0
Apache2에서 python 스크립트를 시도했는데 을 시도했지만 실패했습니다. /var/log/apache2/error.log에 따르면 "sqlite3.OperationalError : table card_data에 11 개의 열이 있지만 10 개의 값이 제공되었습니다."sqlite3.OperationalError : 테이블 card_data에는 11 개의 열이 있지만 값은 10 개가 제공되었습니다.
card_data 테이블에 11 개의 열이있는 이유를 이해할 수 없습니다. 10 개의 열이어야합니다.
또한 con.execute ("PRAGMA table_info (card_data)") 도 시도했지만 card_data에는 10 개의 열이 있습니다.
저는 card_data에 11 개의 열이있는 이유와이 문제를 해결하는 방법을 알고 싶습니다. 감사합니다.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import cgi
import sqlite3
f = cgi.FieldStorage()
cardname = unicode(f.getfirst("cardname", "default string"), 'utf-8')
cardtype = unicode(f.getfirst("cardtype", "default string"), 'utf-8')
cost = unicode(f.getfirst("cost", "default string"), 'utf-8')
color = unicode(f.getfirst("color", "default string"), 'utf-8')
text = unicode(f.getfirst("text", "default string"), 'utf-8')
igflag = unicode(f.getfirst("igflag", "default string"), 'utf-8')
tribe = unicode(f.getfirst("tribe", "default string"), 'utf-8')
power = unicode(f.getfirst("power", "default string"), 'utf-8')
cardid = unicode(f.getfirst("cardid", "default string"), 'utf-8')
dispname = unicode(f.getfirst("displayname", cardname), 'utf-8')
conn = sqlite3.connect("carddata.db")
sql = u"""create table if not exists card_data(
NAME TEXT,
TYPE TEXT,
COST, INTEGER,
COLOR TEXT,
CRADTEXT TEXT,
IGNITION NULL,
TRIBE TEXT,
POWER INTEGER,
CARDID TEXT,
DISPLAY TEXT);
"""
conn.execute(sql)
conn.commit()
sql = u"insert into card_data values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
conn.execute(sql, (cardname, cardtype, int(cost), color, text, igflag, tribe, int(power), cardid, dispname))
conn.commit()
도움을 주셔서 감사합니다.하지만 어쨌든, 같은 오류가 여전히 존재합니다. – user1545503
아마도'sqlite3' 도구를 사용하여 파이썬 밖에서 SQL을 점검해야 할 것입니다. –
감사합니다. 나는 그것을 시도 할 것이다. – user1545503