【问题标题】:inserting a tuple into a mysql db将元组插入 mysql 数据库
【发布时间】:2009-09-04 22:42:57
【问题描述】:

谁能告诉我将 python 元组/列表插入 mysql 数据库的语法? 我还需要知道用户是否可以在不插入任何内容的情况下传递某些行... 例如:一个函数正在返回这个元组:

return job(jcardnum, jreg, jcarddate, jcardtime, jcardserve, jdeliver)

假设用户没有在jreg 中输入任何内容 python 自己会在数据库中的相关行中输入 null 还是会遇到麻烦?

【问题讨论】:

  • job 不是一个元组,它是一个函数。这个问题的信息太少,无法回答。

标签: python mysql


【解决方案1】:

正如评论所说,job(...) 部分是一个函数(或类)调用——从该调用返回的任何内容也从该 return 语句返回。

假设它是一个元组。如果“用户没有在jreg 中输入任何内容”怎么办——那么,根据您没有向我们展示的大量代码,这可能是运行时错误(名称jreg 未定义),一个空的字符串或其他初始默认值从未改变,或None;在后一种情况下,它确实最终会成为数据库中的NULL(当然,如果数据库模式可以接受——否则,数据库将拒绝插入尝试)。

一旦你最终有一个正确且正确的元组 T 要插入,

`mycursor.execute('INSERT INTO sometable VALUES(?, ?, ?, ?, ?, ?)', T)

将接近您想要的语法——如果T 有六个项目(当然sometable 有六列)。每个? 都是一个占位符,并被相应的项目替换。 mycursor 需要是 Cursor 的一个实例,大概是通过之前对 myconnection.cursor 的调用获得的,其中 myconnection 是 Connection 的一个实例,通过从您正在使用的 DB API 模块对 connect 的正确调用构建有正确的论据。

如果您向我们展示大约 100 倍以上的代码和数据库架构,并准确告诉我们您想要完成什么,那么总的来说,我们无疑会更加有用和具体——但基于 sub-epsilon您提供的信息量与我们共同提供的信息量差不多;-)。

【讨论】:

  • +1 可对一个部分被问及大部分被猜到的问题提供惊人的完整答案。
【解决方案2】:

也许,cursor.executemany 是你需要的?

假设用户没有输入任何内容 在 jreg 中,python 本身会输入 null 进入数据库中的相关行或 我会遇到麻烦吗?

我认为您应该尝试一下,如果不允许使用 NULL,您可能会看到警告或错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-26
    • 2011-07-05
    • 2019-12-05
    • 2011-10-25
    • 2014-07-21
    • 2014-04-26
    • 1970-01-01
    相关资源
    最近更新 更多