当我输入
SELECT word from xyz WHERE number = '+12340008933';
进入phpmyadmin并运行它,我得到一个有效的查询输出。
然而,当我从文件中读取数字时,它不会返回任何内容。例如
base_dir = "/home/jayjay/Desktop/scripts/"
filehandle = open(base_dir+"inputFile.txt",'r')
for number in filehandle.readlines():
sql = "SELECT word from xyz WHERE number = '%s';"%number
cursor.execute(sql)
rows = cursor.fetchall()
for row in rows:
print row[0]
这不会返回任何内容。一点都不我已经从Unix2dos转换了输入文件,反之亦然,假设输入文件可能有问题
答案 0 :(得分:2)
您应该使用参数化的SQL语句而不是字符串替换,这很容易进行SQL注入。此外,您可能需要删除从文件读取的值周围的任何空格。请尝试以下方法:
base_dir = "/home/jayjay/Desktop/scripts/"
filehandle = open(base_dir+"inputFile.txt",'r')
for number in filehandle.readlines():
sql = "SELECT word from xyz WHERE number = %s"
cursor.execute(sql, (number.strip(),))
rows = cursor.fetchall()
for row in rows:
print row[0]