获取用户输入并存储到数据库(python)

0 投票
1 回答
7480 浏览
提问于 2025-04-17 21:25

我刚开始学习Python,想写一个脚本,让用户输入一些信息,然后把这些信息存储到SQL服务器的数据库里。

不过我不知道该用什么方法来实现这个功能。我试过一些方法,但都不管用,还报错了。

另外,我还想让用户输入日期,应该怎么做呢?

    import pyodbc
    from datetime import datetime

 class data:
           def __init__(self):
                   self.name=raw_input( "Enter Name: ")
                   self.section=raw_input( "Enter section: ")
    ##               eon=raw_input( "Enter date : ")
    ##               feon=datetime.strptime( eon,'%Y, %m, %d')

    a=data()
    cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=KIRAN-PC;DATABASE=testing')
    cursor = cnxn.cursor()
    cursor.execute("Insert into Students (Name,Section,Enrol_On) Values (a.name,a.section,'2013-01-01')")
    cnxn.commit()

输出:

Enter Name: adam
Enter section: A

Traceback (most recent call last):
  File "C:/Python33/data1", line 14, in <module>
    cursor.execute("Insert into Students (Name,Section,Enrol_On) Values (a.name,a.section,'2013-01-01')")
ProgrammingError: ('42000', '[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]The multi-part identifier "a.name" could not be bound. (4104) (SQLExecDirectW); [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]The multi-part identifier "a.section" could not be bound. (4104)')
>>> 

1 个回答

1

在使用参数的时候,最好加上问号。你可以这样使用:

cursor.execute("Insert into Students (Name,Section,Enrol_On) Values (?,?,"2013-01-01")",(a.name,a.section))

补充:你可以查看 这里,里面有一个关于插入数据的简单例子。

撰写回答