如何在 sql 精简版数据库中插入字符串值?
How to insert the string value in sql lite database?
以下代码显示错误
import sqlite3 as lite
import sys
con = lite.connect('test.db')
url=http://www.google.com
with con:
cur = con.cursor()
cur.execute("CREATE TABLE info(Id INT, Url_Name varchar(55))")
cur.execute("INSERT INTO info VALUES(1,url)")
我试过 %s 但还是不行,
url=http://www.google.com
是无效语法,但大概您已经意识到这一点并将其更改为字符串,即
url = 'http://www.google.com'
即使在那之后,您仍试图将非字符串值 url
插入 Url_Name
列。查询:
"INSERT INTO info VALUES(1,url)"
您可以使用参数化查询来完成这项工作:
cur.execute("INSERT INTO info VALUES(1, ?)", (url,))
此外,在您的程序的第一个 运行 之后,info
table 将存在,并且您的程序的后续 运行s 将失败(除非您删除table 别处)。或者,您可以将 IF NOT EXISTS
子句添加到 CREATE TABLE
查询:
cur.execute("CREATE TABLE IF NOT EXISTS info(Id INT, Url_Name varchar(55))")
感谢 mhawke 的回答,但是
每当我使用参数化查询时:
cur.execute("INSERT INTO info VALUES(1, ?)", (url,))
我得到的输出为 (1,u'http://www.google.com')
不知你从何而来
我用过
cur = con.cursor()
cur.execute("SELECT * FROM info")
rows = cur.fetchall()
for row in rows:
print row*
以下代码显示错误
import sqlite3 as lite
import sys
con = lite.connect('test.db')
url=http://www.google.com
with con:
cur = con.cursor()
cur.execute("CREATE TABLE info(Id INT, Url_Name varchar(55))")
cur.execute("INSERT INTO info VALUES(1,url)")
我试过 %s 但还是不行,
url=http://www.google.com
是无效语法,但大概您已经意识到这一点并将其更改为字符串,即
url = 'http://www.google.com'
即使在那之后,您仍试图将非字符串值 url
插入 Url_Name
列。查询:
"INSERT INTO info VALUES(1,url)"
您可以使用参数化查询来完成这项工作:
cur.execute("INSERT INTO info VALUES(1, ?)", (url,))
此外,在您的程序的第一个 运行 之后,info
table 将存在,并且您的程序的后续 运行s 将失败(除非您删除table 别处)。或者,您可以将 IF NOT EXISTS
子句添加到 CREATE TABLE
查询:
cur.execute("CREATE TABLE IF NOT EXISTS info(Id INT, Url_Name varchar(55))")
感谢 mhawke 的回答,但是 每当我使用参数化查询时:
cur.execute("INSERT INTO info VALUES(1, ?)", (url,)) 我得到的输出为 (1,u'http://www.google.com') 不知你从何而来
我用过
cur = con.cursor()
cur.execute("SELECT * FROM info")
rows = cur.fetchall()
for row in rows:
print row*