我试图找出为什么我的mysql insert语句似乎不适用于字符串替换。简单的例子。
#!/usr/bin/python
import MySQLdb
db = MySQLdb.connect(host="localhost", user="***", passwd="***", db="***")
cur = db.cursor()
a = '1'
b = '2'
c = '3'
cur.execute(""" INSERT INTO rented_users (username,login,password) VALUES ('1','2','3') """)
cur.execute(""" INSERT INTO rented_users (username,login,password) VALUES (%s,%s,%s);""", (a,b,c)
mysql> describe rented_users;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| username | varchar(100) | YES | | NULL | |
| login | varchar(100) | YES | | NULL | |
| password | varchar(100) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+
3行(0.00秒)
基本上我的第一个插入语句工作正常,但是当我尝试使用字符串替换的第二个插入语句时,它会失败。它也没有给我一个非常描述性的错误。
File "insert_test", line 10
^
SyntaxError: invalid syntax
奇怪的是,这个完全相同的语法似乎可以在不同的脚本中正常工作。真的很困惑。非常感谢任何帮助。
欢呼声
答案 0 :(得分:2)
cur.execute(""" INSERT INTO rented_users (username,login,password) VALUES (%s,%s,%s);""", (a,b,c)
缺少结束)
。
可能会在下一行报告无效语法。这是因为Python语法允许您在以下行添加括号,只要只有空格。