2

我正在尝试使用 Python(App Engine)从 Google Cloud SQL 中删除/删除一个表,但我希望表名基于一个变量,为简单起见,我在这里使用“你好”。出于某种原因,它向我抛出了一个错误:“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在第 1 行的 '-IN' 附近使用”

我尝试了以下方法:

tabNameShort = 'hello'    
cursor = conn.cursor()
cursor.execute('DROP TABLE IF EXISTS %s', (tabNameShort))
conn.commit()

我也试过:

tabNameShort = 'hello'    
cursor = conn.cursor()
cursor.execute('DROP TABLE IF EXISTS ' + tabNameShort)
conn.commit()

有什么建议么?

4

2 回答 2

0

尝试这个:

tabNameShort = 'hello'    
cursor = conn.cursor()
cursor.execute('DROP TABLE IF EXISTS `%s`' % tabNameShort)
conn.commit()
于 2013-10-13T12:52:10.417 回答
0

警告:如果表名直接或间接地从用户输入中派生,则直接使用“+”附加表名可能会导致 SQL 注入漏洞。

于 2014-05-30T15:52:34.090 回答