1

当我输入

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 转换了输入文件,反之亦然,假设输入文件可能有问题

4

1 回答 1

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]
于 2012-10-07T17:30:53.953 回答