2013-11-21 4 views
0

기본적으로 내가하려는 것은 데이터베이스에 사용자를 추가하는 함수를 만드는 것입니다. 내 데이터베이스에 연결하는 pymysql 사용하고 있습니다.Python pymysql 'Field에서 알 수없는 열

import pymysql 
from passlib.hash import sha256_crypt 

try: 
    conn = pymysql.connect(host='', unix_socket='/tmp/mysql.sock', user='', passwd='', db='') 
    cur = conn.cursor() 
except Exception as e: 
    print("Fail", e) 

def register(username, password): 
    hashe = sha256_crypt.encrypt(password) 
    cur.execute("INSERT INTO users (username, password) VALUES (%s, %s)" % (username, hashe)) 

register('Admin','password') 

내가지고있어 오류가

Traceback (most recent call last): 
    File "db.py", line 20, in <module> 
    register('Admin','password') 
    File "db.py", line 16, in register 
    cur.execute("INSERT INTO users (username, password) VALUES (%s, %s)" % (username, hashe)) 
    File "F:\Python33\lib\site-packages\pymysql\cursors.py", line 102, in execute 
    result = self._query(query) 
    File "F:\Python33\lib\site-packages\pymysql\cursors.py", line 202, in _query 
    conn.query(q) 
    File "F:\Python33\lib\site-packages\pymysql\connections.py", line 734, in query 
    self._affected_rows = self._read_query_result(unbuffered=unbuffered) 
    File "F:\Python33\lib\site-packages\pymysql\connections.py", line 845, in _read_query_result 
    result.read() 
    File "F:\Python33\lib\site-packages\pymysql\connections.py", line 1049, in read 
    first_packet = self.connection._read_packet() 
    File "F:\Python33\lib\site-packages\pymysql\connections.py", line 826, in _read_packet 
    packet.check_error() 
    File "F:\Python33\lib\site-packages\pymysql\connections.py", line 373, in check_error 
    raise_mysql_exception(self.__data) 
    File "F:\Python33\lib\site-packages\pymysql\err.py", line 117, in raise_mysql_exception 
    _check_mysql_exception(errinfo) 
    File "F:\Python33\lib\site-packages\pymysql\err.py", line 113, in _check_mysql_exception 
    raise InternalError(errno, errorvalue) 
pymysql.err.InternalError: (1054, "Unknown column 'Admin' in 'field list'") 

관리자가 열 생각하는 것 같다하지만이 값을해야하는데 이후 정말 방법을 모르는 것입니다.

답변

2

난 안 파이썬 프로그래머,하지만이 같은 %s 값을 넣어 시도 할 수 있습니다 : 참으로 일했다

INSERT INTO users (username, password) VALUES ('%s', '%s') 
+0

, 감사합니다! 이제 다른 문제가 발생했지만 새로운 정보로 데이터베이스를 업데이트하는 것처럼 보이지 않습니다. –

+0

아마도 쿼리를 실행 한 후에'commit' 함수를 호출해야합니다. – nashuald

+0

감사합니다. –