MySQL寻找现有的Windows路径

时间:2012-09-17 20:59:11

标签: python mysql mysql-python

我正在存储有关我从二进制文件读入的文件的信息。我正在使用mysql来存储信息。其中一列是文件的绝对路径。此代码将定期运行,因此我想检查之前是否尚未解析此特定文件。

我正在尝试执行:

path = os.path.join(root,f)

sql = "SELECT * FROM %s WHERE Filepath = %s" % ("tntfiles", path)

但无济于事。我收到一条错误消息:“1064,”您的SQL语法错误“

我尝试使用`围绕路径执行相同的查询:

path = "`" + path + "`'"

但是我得到:“1064,”你的SQL语法错误“

我不确定我在做什么,因为我可以用

执行类似的查询
"SELECT * FROM %s WHERE Id = %s" % ("tntfiles","1") 

它运作得很好。

由于

2 个答案:

答案 0 :(得分:0)

MySQL需要将字符串包围在'或'中 - 所以只需将代码更改为

即可
"SELECT * FROM %s WHERE Filepath = '%s'" % ("tntfiles", path)

答案 1 :(得分:0)

path = os.path.join(root,f)

sql = "SELECT * FROM tntfiles WHERE Filepath = %s"
cursor.execute(sql, (path,))

否则,您的路径值可能无法正确引用特殊字符(尽管不太可能),或者可能无法正确编码(更可能是Unicode和非ASCII数据)。

如果你绝对必须能够用不同的表名替换:

sql = "SELECT * FROM %s WHERE Filepath = %%s" % ("tntfiles",)
cursor.execute(sql, (path,))