0

我试图弄清楚为什么我的 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

奇怪的是,这种完全相同的语法似乎可以在不同的脚本中正常工作。真的很迷茫。任何帮助将不胜感激。

干杯

4

1 回答 1

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

缺少一个结束)

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

于 2013-06-07T06:30:18.077 回答