Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t从python写入mysql数据库_Python_Mysql - Fatal编程技术网

Can';t从python写入mysql数据库

Can';t从python写入mysql数据库,python,mysql,Python,Mysql,我正在尝试将一个对象保存到mysql表中。我用一个表创建了一个数据库,在这个表中有一个文本列 我的实际代码是 conn = MySQLdb.connect(host='localhost', user='root', passwd='password',db='database') x = conn.cursor() x.execute("""INSERT INTO table (title) VALUES (%s)""", (test,)) 其中test是我从json解析创建的

我正在尝试将一个对象保存到mysql表中。我用一个表创建了一个数据库,在这个表中有一个文本列

我的实际代码是

conn = MySQLdb.connect(host='localhost', user='root',        passwd='password',db='database')
x = conn.cursor()
x.execute("""INSERT INTO table (title) VALUES (%s)""", (test,))
其中test是我从json解析创建的对象。输入此命令后,python显示1L,但在sql中显示1L

select * from table;

什么也没出现,怎么了?

我想试试两件事中的一件。如果我必须使用这样的完整脚本,我就不用麻烦使用
conn
。。。我将执行一个子进程调用

# farm_out_to_os.py
cmd = """INSERT INTO table (title) VALUES ({})""".format(test))
subprocess.call("mysql -u{} -p{} < {}".format(uname, pwd, cmd), shell=True)
以及守则:

# code.py
from sqlalchemy import create_engine, sessionmaker

engine = create_engine(config.SQLALCHEMY_URL)
session = sqlalchemy.sessionmaker(bind=engine)
newval = models.MyTable(val=5)
session.add(newval)
session.commit()
session.close()

取决于您尝试执行的操作:)

您需要提交对数据库所做的更改。使用:

x.execute(...)
conn.commit()

将commit命令
conn.commit()
添加到输入的末尾。这告诉连接将前面的命令推送到db。是否必须在x.execute下添加x.commit()?是
x.execute(…)
后跟
conn.commit()
。它说AttributeError:“Cursor”对象没有属性“commit”!对不起,我是说
conn.commit()
x.execute(...)
conn.commit()