gpt4 book ai didi

python - MySQLdb/Python/LocalHost - 查询运行没有错误,但没有结果

转载 作者:行者123 更新时间:2023-11-29 08:28:42 24 4
gpt4 key购买 nike

我希望有人能帮助我?我正在尝试使用 Python 2.7 和 MySQLdb 库填充 MySQL 数据库。我已经编写了下面的示例脚本,但无论我如何尝试,我都无法让它工作。

代码运行时没有错误(当我运行代码时,它会打印“完成”,但就是这样),当我直接在 phpMyAdmin 中尝试查询时,它工作正常,由于某种原因,我无法让它工作在 Python 中。

我是不是错过了什么?我需要在 phpMyAdmin 中激活某些内容才能使其正常工作吗?整个下午的大部分时间我都在寻找答案,而其他人也有类似的问题,尽管他们往往会收到错误消息(我没有)。

import MySQLdb

# Define the database access details
DB_HOST = "localhost"
DB_USER = "username"
DB_PASSWORD = "secretpassword"
DB_NAME = "TestDatabase"

# Establish the connection to the database
db = MySQLdb.connect(
host=DB_HOST,
user=DB_USER,
passwd=DB_PASSWORD,
db=DB_NAME
)
cur = db.cursor()

Query = "INSERT INTO SearchResults ( `TimeStamp`, `SearchTerm`, `SearchResult`) VALUES ('2013-06-22 17:28:09', 'TestSearchTerm', 'Test Search Result');"
cur.execute(Query)

print"Done"

这是我第一次经历这些,所以如果我忽略了一些明显的事情,请原谅我!任何帮助将不胜感激!

最佳答案

您可能必须commit()您的更改。

<小时/>

由于这是您的“第一次经历”,一些解释:

根据“数据库引擎”的功能,当您修改数据时,“外界”不会立即看到您的更改。宽松地说,您的更改对于您的数据库连接来说是“私有(private)的”。

这是一个非常重要的功能。除此之外,这样做的好处是允许您进行多次修改,并一次“发布”它们。另一个好处是,如果在某个时候您认为修改无效,您可以“取消”它们,而不会打扰数据库的任何其他用户。

其中一个小缺点是,一旦准备好发布更改,您就必须显式提交更改。否则,一旦连接关闭,它们就会消失。您还必须有机会设置“自动提交”——即每次向数据库发出请求后都会有一次隐式提交。根据您的需要,这可能是一个选项。总结一下:

  • 要将更改“发布”到数据库:使用db.commit()
  • 要“取消”对数据库的更改:使用db.rollback()或仅关闭连接而不提交,
  • 在每次请求后隐式提交:db.autocommit(True)

DBA 和其他数据库专家可能会因为我对上述段落的过于简单化而大喊大叫。但我希望这能帮助您了解发生了什么!

关于python - MySQLdb/Python/LocalHost - 查询运行没有错误,但没有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17253242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com