【发布时间】:2020-07-23 03:19:34
【问题描述】:
我正在尝试使用 python 查询存储在 SQL 中的表。我正在使用 mysql.connector 包来执行任务。
import mysql.connector
#Creating a connection
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="something",
database='mydatabase',
)
print(mydb)
##Creating a table called customers
mycursor = mydb.cursor()
mycursor.execute("CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))")
#Inserting records to the table
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = [
('Peter', 'Lowstreet 4'),
('Amy', 'Apple st 652'),
('Hannah', 'Mountain 21'),
('Michael', 'Valley 345')]
mycursor.executemany(sql, val)
mydb.commit()
print(mycursor.rowcount, "record inserted.")
问题是当我查询数据库时,没有显示输出。
query=("SELECT name, address FROM customers")
mycursor.execute(query)
for (name, address) in mycursor:
print("{} {}".format(name, address))
这是我尝试过的内容以及我从哪里获得代码的链接。 链接:https://dev.mysql.com/doc/connector-python/en/connector-python-example-cursor-select.html
【问题讨论】:
-
您是否尝试过通过Workbench或mysqlsh之类的工具查询表;确保插入的记录存在?
-
是的,记录存在于数据库中,只是没有显示在 python 中。
-
伴侣...我不知道。我已经使用 1)我自己的数据集(
CREATE、INSERT、SELECT)测试了这个场景; 2)您在 Jupyter Notebook 中的 exact 复制/粘贴代码(登录凭据除外),以及 3)您在控制台 iPython 中的 #2 中创建的表上的SELECT语句......它们都有效完美。你的代码很好!我赞成这个问题,以帮助引起一些关注。我不知道伙计……对不起。会有想法的。您能否更新您的问题以显示数据库中的记录是?
标签: python mysql mysql-python