如何使用python填充数据库

2024-04-25 07:31:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用python faker填充一个表,但得到了这个错误。这是我的密码

import psycopg2
from faker import Faker
fake = Faker()

conn = psycopg2.connect(database="testdb", user="****", password="****", host="127.0.0.1", port="5432")
print "Opened database successfully"
cur = conn.cursor()

for i in range (10):
    Id =fake.random_digit_not_null()
    name = fake.name()
    age=fake.random_number(digits=None) 
    adress =fake.address()
    salary = fake.random_int(min=0, max=9999)
    cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (Id,name,age,adress,salary)");

conn.commit()
print "Records created successfully";
conn.close()

这是错误

^{pr2}$

Tags: nameimportidage错误randomconndatabase
2条回答

您没有在查询中填充值,而是按原样将字符串发送到数据库。这实际上会用以下值填充查询:

cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (%s, %s, %s, %s, %s)", (Id, name, age, adress, salary));

这就包装了包含了要插入元组中的值的变量,让psycopg2正确地引用字符串,这对您来说是一件轻松的事,而且如果您将代码用作高效代码的基础,则可以避免SQL注入。这在the module's documentation中有记录。在

中的sql请求当前执行好像有问题试试这个

cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
  VALUES ({},{},{},{},{})".format(Id,name,age,adress,salary));

相关问题 更多 >