将元组插入mysql数据库

时间:2009-09-04 22:42:57

标签: python mysql

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

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

假设用户未在jreg中输入任何内容 python本身会在数据库中的相关行中输入null,还是会遇到麻烦?

2 个答案:

答案 0 :(得分:6)

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

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

一旦你最终得到了一个你要插入的正确和正确的元组T

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

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

如果你向我们展示大约100倍的代码和数据库模式并告诉我们你想要完成什么,我们总的来说,毫无疑问会更有用和具体 - 但是基于sub-epsilon你提供的信息量与我们总体而言可以提供的信息差不多; - )。

答案 1 :(得分:0)

也许,你需要cursor.executemany吗?

  

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

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