python - Python 中的 MySQL。插入查询不起作用

标签 python mysql insert

我的 MySQL 的 INSERT 查询有问题。

这是我的Python代码:

import socket
import MySQLdb

    def create_db():
         db1 = MySQLdb.connect(host="localhost",user="root",passwd="root")
         cursor = db1.cursor()
         sql = 'CREATE DATABASE IF NOT EXISTS  env_data;'
         select_db = 'USE env_data'
         ins = "insert into env_data(cpu_usage, date, mem_usage) values('40%', '1999-01-01 11:11:11', '25%');"
         engine_db = "set sql_mode='NO_ENGINE_SUBSTITUTION'"
         us = 'CREATE TABLE IF NOT EXISTS env_data (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,date datetime NOT NULL,cpu_usage varchar(10) NOT NULL,mem_usage varchar(10) NOT NULL);'
         cursor.execute(select_db)
         cursor.execute(us)
         cursor.execute(engine_db)
         cursor.execute(ins)

执行后数据库和表已正确创建,但插入不起作用。 当我在我的 mysql 服务器中执行此查询时,它可以工作,但是从这个 python 脚本中 - cpu_usage、date、mem_usage 中没有插入。

在脚本中我还尝试执行mysql_notes = 0/mysql_notes = 1

有人可以帮我解决这个问题吗?

最佳答案

您必须在插入语句之后添加db1.commit()。这适用于 mysql 工作台/命令行,因为它有一个 autocommit 选项,默认设置为 true。否则,您也必须这样做。

关于python - Python 中的 MySQL。插入查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42203986/

相关文章:

python - 魔杖:如何在每帧中组装透明 gif/清晰背景

python - Python 中的 Raspberry PI 服务器/客户端套接字

c - 链表插入和删除

python - 按索引在 la 列表中插入一个元素而不移动其他元素

python - 值错误: could not convert string to float: '1,141'

python - 在 Google Cloud 上的 docker 镜像中运行 Jupyter Notebook

sql - 为什么即使 $result 返回空结果集,mysql_num_rows($result) 也返回 1?

mysql - 如何查看从 VB.net 代码传递给 SQL 的查询

php - 制作一个简单的日历

php - MySQL (PDO) exec 不返回任何内容,没有错误,没有添加行