PyMySQL就像通配符包围变量一样

时间:2017-11-26 16:35:48

标签: python mysql variables wildcard pymysql

这是我的代码:

import pymysql
import pymysql.cursors

# ...

for w in aList: 
  param = w
  cursor.execute("SELECT * FROM test where text like %(p)s", {"p": "%%{}%%".format(param)})
  result_set = cursor.fetchall()
  for row in result_set:
    print(row)

我没有执行任何错误。

与本网站上的类似问题和答案不同,我的问题是关于一个被两个通配符包围的变量。这个变量每次都会在循环中改变,而不是一个固定的字符串(在这种情况下它会执行)。

非常感谢提前!乔安妮

1 个答案:

答案 0 :(得分:0)

就去做:

Traceback (most recent call last):
  File "main.py", line 107, in <module>
    retval = Solution().sortedInsert( head, D )
  File "main.py", line 86, in sortedInsert
    print(itr.val)
AttributeError: 'DLList' object has no attribute 'val'

不要使用 var sql = string.Format("SELECT {0} FROM {1} WHERE {2} = '{3}', fieldList, tableName, filterField, filterValue); 中的 for w in aList: param = w cursor.execute("SELECT * FROM test WHERE text LIKE %s", f"%{param}%") result_set = cursor.fetchall() for row in result_set: print(row) ,因为它容易受到 SQL 注入攻击。