当前位置: 首页 > 面试题库 >

无法通过MySQLdb在Python脚本中执行INSERT语句

韩弘壮
2023-03-14
问题内容

我正在尝试INSERT使用MySQLdb从Python脚本在MySQL表上执行基本语句。我的桌子看起来像这样:

CREATE TABLE `testtable` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `testfield` varchar(255) NOT NULL,
    PRIMARY KEY (`id`)
)

从MySQL命令行运行此查询可以正常工作:

INSERT INTO `testtable` (`id`, `testfield`) VALUES (NULL, 'testvalue');

但是,当我尝试从Python脚本执行查询时,不会插入任何行。这是我的代码

conn = MySQLdb.connect(host=db_host, port=db_port, user=db_user, passwd=db_password, db=db_database)
cursor = conn.cursor ()
cursor.execute ("INSERT INTO `testtable` (`id`, `testfield`) VALUES (NULL, 'testvalue')")
print "Number of rows inserted: %d" % cursor.rowcount
cursor.close()
conn.close()

奇怪的是,这将显示“插入的行数:1”。我还可以确认此查询增加了ID字段,因为当我通过命令行添加另一行时,其ID的值与Python脚本已成功插入其行的值相同。但是,运行SELECT查询不会从脚本返回任何行。

知道出了什么问题吗?


问题答案:

您需要设置conn.autocommit(),或者需要做conn.commit()-请参阅常见问题解答



 类似资料:
  • 问题内容: 我正在尝试使用Linux crontab执行python脚本。我想每10分钟运行一次此脚本。 我找到了很多解决方案,但都无济于事。例如:在/etc/cron.d中编辑anacron或使用。我将此行放在文件的末尾,但它没有任何改变。我需要重启任何服务吗? 我必须编辑哪个文件来配置它? 提前致谢 这是脚本。 问题答案: 只需使用并按照此处的教程操作即可。 请参阅第3点,以获取有关如何指定频

  • 我有一个结构为INSERT语句的备份文件。我的方法是编写一个方法从文件中加载这些语句,并使用JDBC模板执行它们。 编辑:另外,SQL Developer如何处理这些长字符串文本?

  • 问题内容: 我尝试执行以下操作(我的jar和python文件都在同一目录中): 和 无论是工作过。因此,我当时以为应该改用Jython,但我认为必须有一种更简单的方法来通过python执行jar文件。 你知道我可能做错了什么吗?或者,是否还有其他网站可以进一步研究我的问题? 问题答案: 我将以这种方式使用子流程: 但是,如果你有一个正确配置的,你应该能够直接运行jar,因为你写的。 那么,这正是您

  • 我想在macos上使用apache2从PHP文件执行Python脚本。我能够执行简单的python脚本,如: 从PHP: 巨蟒 输出是: 但当我尝试导入以下包时: 我得到: 我的问题是,有人知道: 1–我如何使这些(以及任何其他)软件包工作? 2–shell_exec当前正在执行python2。如何添加Python 3?(如果我编写python3而不是python将无法工作)

  • 问题内容: 我有一个简单的PHP函数,该函数应在调用时执行Pyton脚本。我已经在我的php程序中多次尝试了这种功能,但是这次以某种方式该功能根本不执行python脚本。当我从命令提示符下访问脚本并运行时,它将成功执行。我要提到的一件事是,该脚本具有python的NLTK库的一些认真实现,并且执行和执行其操作(即数据处理并存储到db)需要20秒钟以上。执行延迟是否会导致此问题,或者这次我还缺少其他

  • 问题内容: 我正在Raspberry Pi上的Apache服务器上运行PHP文档,并且希望它在单击按钮时运行文件。我在命令下放置了一些echo命令,以使文件运行,并且该文件可以打印出来,但文件无法运行。index.php文件和lightson.py和lightsoff.py文件都在同一目录( / var / www )中,我在这两个文件的顶部都添加了 #!/ usr / bin / env pyt