Python MySQLdb占位符实现不起作用
Python的MySQLdb模块应该使用SQL语句字符串中的格式说明符实现占位符。下面是MYSQL食谱中的一个例子Python MySQLdb占位符实现不起作用,python,mysql,Python,Mysql,Python的MySQLdb模块应该使用SQL语句字符串中的格式说明符实现占位符。下面是MYSQL食谱中的一个例子 import sys import MySQLdb import Cookbook try: conn = Cookbook.connect () print("Connected") except MySQLdb.Error as e: print("Cannot connect to server") print("Error code:",
import sys
import MySQLdb
import Cookbook
try:
conn = Cookbook.connect ()
print("Connected")
except MySQLdb.Error as e:
print("Cannot connect to server")
print("Error code:", e.args[0])
print("Error message:", e.args[1])
sys.exit (1)
cursor = conn.cursor ()
cursor.execute ("""
INSERT INTO profile (name,birth,color,foods,cats)
VALUES(%s,%s,%s,%s,%s)
""",("Josef", "1971-01-01", None, "eggroll", 4))
但是当我从外壳上检查时
mysql> SELECT * FROM profile WHERE name LIKE 'J%';
+----+--------+------------+-------+----------------+------+
| id | name | birth | color | foods | cats |
+----+--------+------------+-------+----------------+------+
| 7 | Joanna | 1952-08-20 | green | lutefisk,fadge | 0 |
+----+--------+------------+-------+----------------+------+
很明显,没有插入任何内容。为什么?
如果我按照建议添加cursor.commit
cursor.commit()
AttributeError: 'Cursor' object has no attribute 'commit'
您没有提交事务 执行查询后,在末尾添加
conn.commit()
cursor = conn.cursor()
cursor.execute ("""
INSERT INTO profile (name,birth,color,foods,cats)
VALUES(%s,%s,%s,%s,%s)
""",("Josef", "1971-01-01", None, "eggroll", 4))
conn.commit()
检查编辑后的答案。将光标更改为有帮助。