Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python SQL选择数据_Python 3.x_Sqlite - Fatal编程技术网

Python 3.x Python SQL选择数据

Python 3.x Python SQL选择数据,python-3.x,sqlite,Python 3.x,Sqlite,我正在尝试测试我编写的一小段代码,该代码用于在表的一列中搜索特定字符串。代码应该搜索LoginInfo表的Users列并打印出结果。我已经尝试了这段代码的两个版本,但都有不同的错误 第一版: import sqlite3 import sys Username = "('Hello1',)" print(Username) connection= sqlite3.connect("Logininfo.db") c = connection.cur

我正在尝试测试我编写的一小段代码,该代码用于在表的一列中搜索特定字符串。代码应该搜索LoginInfo表的Users列并打印出结果。我已经尝试了这段代码的两个版本,但都有不同的错误

第一版:

    import sqlite3
    import sys
    Username = "('Hello1',)"
    print(Username)

    connection= sqlite3.connect("Logininfo.db")
    c = connection.cursor() 

    c.execute('''SELECT Username FROM LoginInfo WHERE Username=Hello1''') 
    for row in c :
        print(row)
版本一错误:

c、 执行(''从登录信息中选择用户名,其中用户名=Hello1'') sqlite3.ERROR:没有这样的列:Hello1

第二版:

    import sqlite3
    import sys
    Username = "('Hello1',)"
    print(Username)

    connection= sqlite3.connect("Logininfo.db")
    c = connection.cursor() 

    c.execute("SELECT Username FROM LoginInfo WHERE Username="Hello1"") 
    for row in c :
        print(row)
版本二错误:

突出显示Hello1时出现无效语法错误


如果您有任何帮助,我们将不胜感激,因为我对这方面还不太熟悉。

在这两种情况下,您的语法都有问题。当您将字符串发送到
游标。执行
时,您将向DB发送一个完整的命令。这意味着字符串需要正确引用,SQL语法需要正确,等等

此命令:
从登录信息中选择用户名,其中Username=Hello1
表示:

“从LoginInfo表中提供用户名列,其中用户名与Hello1列匹配”

另一方面,此命令:
从登录信息中选择用户名,其中Username='Hello1'
(注意引号)表示:

“从LoginInfo表中输入Username列,其中Username=Hello1”


您的第二次尝试完全是无效的。您应该在外部使用三重引号或转义作为查询一部分的引号。

在这两种情况下,您的语法都有问题。当您将字符串发送到
游标。执行
时,您将向DB发送一个完整的命令。这意味着字符串需要正确引用,SQL语法需要正确,等等

此命令:
从登录信息中选择用户名,其中Username=Hello1
表示:

“从LoginInfo表中提供用户名列,其中用户名与Hello1列匹配”

另一方面,此命令:
从登录信息中选择用户名,其中Username='Hello1'
(注意引号)表示:

“从LoginInfo表中输入Username列,其中Username=Hello1”


您的第二次尝试完全是无效的。您应该在外部使用三重引号或转义作为查询一部分的引号。

我已经尝试过这样做,这是您的意思吗?我在逐字扫描字符串时得到一个错误EOL。c、 execute(““从登录信息中选择用户名,其中Username=”Hello1“”)怀疑您需要在
Hello1
=:
c.execute(““从登录信息中选择用户名,其中Username=”Hello1“”)
我尝试过这样做,这是您的意思吗?我在逐字扫描字符串时得到一个错误EOL。c、 execute(““从登录信息中选择用户名,其中Username=”Hello1“”)怀疑您需要在
Hello1
=:
c.execute(““从登录信息中选择用户名,其中Username=”Hello1“”)