Python MySQLdb字符串替换

时间:2013-06-07 06:28:37

标签: python mysql

我试图找出为什么我的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

奇怪的是,这个完全相同的语法似乎可以在不同的脚本中正常工作。真的很困惑。非常感谢任何帮助。

欢呼声

1 个答案:

答案 0 :(得分:2)

cur.execute(""" INSERT INTO rented_users (username,login,password) VALUES (%s,%s,%s);""", (a,b,c)

缺少结束)

可能会在下一行报告无效语法。这是因为Python语法允许您在以下行添加括号,只要只有空格。