【问题标题】:How to use user input to create databases如何使用用户输入创建数据库
【发布时间】:2017-06-16 23:53:25
【问题描述】:

如何从用户那里获取输入以在 python 中创建数据库?这些数据必须存储在 test.db 文件中。

代码

import sqlite3

conn = sqlite3.connect('test.db');
print "Opened database successfully";


name=raw_input ("enter your name: ");
salary=raw_input("enter your salary: ");

conn.execute("INSERT INTO employee (NAME,SALARY) \
      VALUES ( r"+name+",r "+salary+")");

conn.commit()

【问题讨论】:

  • 你能在这里添加你得到的错误吗?另外,raw_input() 在 python3 中是 input()
  • 回溯(最近一次调用最后一次):文件“m1.py”,第 13 行,在 VALUES (r"+name+",r"+salary+")"); sqlite3.OperationalError :在“3432”附近:语法错误

标签: database python-2.7 python-3.x sqlite


【解决方案1】:

你的连接在这里被破坏了,如果薪水是一个整数,你应该这样做:

conn.execute("INSERT INTO employee (NAME,SALARY) \
    VALUES ( \"" + name + "\", " + str(salary) + ")");

基本上,您需要在查询中对字符串周围的一些引号进行转义。

然后要阅读您的表格,您可以执行以下操作:

for row in conn.execute('SELECT * FROM employee'):
    print row

【讨论】:

  • 你应该有一个灰色的勾号,你可以在它的分数附近点击(当时为零)
  • 例如你可以DELETE FROM employee WHERE name = "myname"
  • name=raw_input("请输入您的姓名:"); conn.execute("DELETE FROM employee WHERE name =\""+ name+"\"); conn.commit()
  • mitesh@mitesh-Inspiron-N5010:~/Desktop$ python m3.py 文件“m3.py”,第 12 行 conn.execute("DELETE FROM employee WHERE name =\""+ name+" \"); ^ SyntaxError: EOL 同时扫描字符串文字 mitesh@mitesh-Inspiron-N5010:~/Desktop$
  • 看来你的行不完整,应该是:conn.execute("DELETE FROM employee WHERE name =\""+ name+"\");")
猜你喜欢
  • 1970-01-01
  • 2016-11-21
  • 2017-10-02
  • 2012-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多