sqlite插入失败

时间:2014-09-05 23:39:23

标签: python sqlite

您好我是python的新手并经历了一些教程,我的代码没有给出任何错误但是它失败了,问题的完整列表位于底部

这是我的第一个.py文件,它是rehber.py

import crehber

print("ASIM's Contact List")

print("To create a Table press 1")
print("To write into database press 2")

choice = int(input("Your Choice: "))

def checkInput(choice):

    if choice == 1:
        print("Your Choice is ", choice)
        crehber.tablecreate()
        return True
    elif choice == 2:
        print("Your Choice is ", choice)
        name = str(input("Enter name: "))
        surname = str(input("Enter surname: "))
        number = int(input("Enter number: "))
        crehber.tableInsert(name,surname,number)
        return True
    else:
        print("Invalid choice, please re-enter")

while checkInput(choice) != True:
    choice = int(input("Your Choice: "))

这是另一个.py文件,它是crehber.py

import sqlite3 as db

def tablecreate():
    conn = db.connect('rehber.db')
    cursor = conn.cursor()
    cursor.execute('create table bilgiler(name text,sname text, num text)')
    print("Table is created")

def tableInsert(name,surname,number):
    conn = db.connect('rehber.db')
    cursor = conn.cursor()
    cursor.execute('insert into bilgiler(name,sname,num) values(?,?,?)', (name,surname,number))
    print("Insert is Successful")
    conn.close()

其他信息:

1-)sqlite在c:\ sqlite中 2-)我创建了一个目录c:\ pythonb来玩,这是我的.py文件

问题列表&问题:

1-当在sqlite目录中并输入sqlite3 rehber.db时,会在那里创建文件。 然后当我运行程序并调用

tableCreate() function 

rehber.db出现在pythonb目录中,这是正常的吗?

2-当我进行一些输入并获得"插入成功"信息 我转到sqlite目录并输入sqlite3 rehber.db 然后选择*来自bilgiler; 但什么都没有出现..你认为哪个是错的?

3-我有时会错过分号;在select命令之后我被卡在sqlite shell中,如何在不关闭commandprompt的情况下退出?

感谢您节省阅读时间,感谢任何帮助

1 个答案:

答案 0 :(得分:1)

  

1-当在sqlite目录中并输入sqlite3 rehber.db时,会在那里创建文件。然后当我运行程序并调用tableCreate()函数rehber.db出现在pythonb目录中时,这是正常的吗?

我不知道“正常”,但是当你只是在任何程序中指定一个没有任何路径名的文件时 - 你会在当前工作目录中得到一个文件。因此,如果您打开DOS提示符cd c:\sqlite然后运行sqlite3 rehber.db,则会创建文件c:\sqlite\rehber.db,因为c:\sqlite是您当前的工作目录。如果您打开DOS提示符cd c:\pythonbrehber.py,则会创建一个文件c:\pythonb\rehber.db,因为c:\pythonb是您当前的工作目录。

  

2-当我进行一些输入并获得“插入成功”消息时,我转到sqlite目录并输入sqlite3 rehber.db然后从bilgiler中选择*;但什么都没有出现..你认为哪个是错的?

好吧,一个程序(你的脚本)在一个文件上运行,另一个程序(sqlite3)在一个完全不同的文件上运行。没有任何东西出现的原因与你装满汽车油箱时没有任何东西出现在我汽车的油箱中。

  

3-我有时会错过分号;在select命令之后我被卡在sqlite shell中,如何在不关闭commandprompt的情况下退出?

您只需在延续提示行(...>)上输入分号即可完成最后一个命令。