Mysql ';领域

Mysql ';领域,mysql,python-3.x,pymysql,Mysql,Python 3.x,Pymysql,所以基本上我要做的是创建一个函数,将用户添加到数据库中。我正在使用pymysql连接到我的数据库 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:

所以基本上我要做的是创建一个函数,将用户添加到数据库中。我正在使用pymysql连接到我的数据库

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'")
回溯(最近一次呼叫最后一次):
文件“db.py”,第20行,在
注册('管理员','密码')
寄存器中第16行的文件“db.py”
当前执行(“插入用户(用户名、密码)值(%s,%s)”%(用户名、哈希))
文件“F:\Python33\lib\site packages\pymysql\cursors.py”,执行中的第102行
结果=self.\u查询(查询)
文件“F:\Python33\lib\site packages\pymysql\cursors.py”,第202行,在查询中
连接查询(q)
文件“F:\Python33\lib\site packages\pymysql\connections.py”,第734行,在查询中
self.\u受影响的行=self.\u读取\u查询\u结果(无缓冲=无缓冲)
文件“F:\Python33\lib\site packages\pymysql\connections.py”,第845行,在读取查询结果中
结果。读取()
文件“F:\Python33\lib\site packages\pymysql\connections.py”,第1049行,已读
第一个\u数据包=self.connection.\u读取\u数据包()
文件“F:\Python33\lib\site packages\pymysql\connections.py”,第826行,在\u read \u数据包中
packet.check_error()
文件“F:\Python33\lib\site packages\pymysql\connections.py”,第373行,检查\u错误
引发mysql异常(自身数据)
raise\u mysql\u异常中的文件“F:\Python33\lib\site packages\pymysql\err.py”,第117行
_检查\u mysql\u异常(errinfo)
文件“F:\Python33\lib\site packages\pymysql\err.py”,第113行,在\u check\u mysql\u异常中
引发内部错误(错误号,错误值)
pymysql.err.InternalError:(1054,“字段列表”中的未知列“Admin”)

它似乎认为Admin是一个列,但我真的不知道怎么做,因为它应该是一个值。

我不是python程序员,但您可以尝试将
%s
值如下:

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

我不是python程序员,但您可以尝试将
%s
值如下:

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

我也面临着类似的问题-可能是数据库中的列名称(相对于您的代码)有一个拼写错误

我也面临着类似的问题-可能是数据库中的列名称有一个拼写错误(相对于您的代码)

确实有效,谢谢!虽然现在出现了另一个问题,但它似乎不是在用新信息更新数据库。也许您必须在执行查询后调用
commit
函数,这确实有效,谢谢!尽管现在出现了另一个问题,但它似乎并不是在用新信息更新数据库。可能在执行查询后必须调用
commit
函数