psycopg2.ProgrammingError: syntax error at or near "st"\r,
psycopg2.ProgrammingError: syntax error at or near "st"\r,
这里我需要在 python.
的 postgresql table 中插入一些值
我尝试了下面的代码,但是出现了一个错误 "psycopg2.ProgrammingError: syntax error at or near "st"\r, referer: http://localhost:8080/"
conn = psycopg2.connect(database="Test", user="dev", password="123456", host="192.168.1.104", port="5432")
cursor = conn.cursor()
cursor.execute('''INSERT INTO signup (id, name, email, dob, address, mobile, password) VALUES (1,%s,%s,%s,%s,%s,%s)''' % (name,email,dob,address,mobile,password))
conn.commit()
请解决这个问题,提前致谢.....
检查所有这些变量的值。其中一些或全部可能包含 '\r'
.
编辑:鉴于错误显示““st”\r 处或附近的语法错误”,这可能是 address
变量。
您在一个或多个参数中有一个回车 return。并且因为您使用的是参数插值,所以这会破坏查询字符串。但是参数插值的更大问题是这段代码容易受到 SQL 注入的攻击。
首先,请阅读以下内容:
http://initd.org/psycopg/docs/usage.html#the-problem-with-the-query-parameters
然后这个:
http://initd.org/psycopg/docs/usage.html#passing-parameters-to-sql-queries
然后,将您的代码重写为:
cursor.execute('''INSERT INTO signup (id, name, email, dob, address, mobile, password) VALUES (1,%s,%s,%s,%s,%s,%s)''', (name,email,dob,address,mobile,password))
现在您可以根据需要将“\r”传递给数据库,而且您也可以安全地避免 SQL 注入。
这里我需要在 python.
的 postgresql table 中插入一些值我尝试了下面的代码,但是出现了一个错误 "psycopg2.ProgrammingError: syntax error at or near "st"\r, referer: http://localhost:8080/"
conn = psycopg2.connect(database="Test", user="dev", password="123456", host="192.168.1.104", port="5432")
cursor = conn.cursor()
cursor.execute('''INSERT INTO signup (id, name, email, dob, address, mobile, password) VALUES (1,%s,%s,%s,%s,%s,%s)''' % (name,email,dob,address,mobile,password))
conn.commit()
请解决这个问题,提前致谢.....
检查所有这些变量的值。其中一些或全部可能包含 '\r'
.
编辑:鉴于错误显示““st”\r 处或附近的语法错误”,这可能是 address
变量。
您在一个或多个参数中有一个回车 return。并且因为您使用的是参数插值,所以这会破坏查询字符串。但是参数插值的更大问题是这段代码容易受到 SQL 注入的攻击。
首先,请阅读以下内容: http://initd.org/psycopg/docs/usage.html#the-problem-with-the-query-parameters 然后这个: http://initd.org/psycopg/docs/usage.html#passing-parameters-to-sql-queries 然后,将您的代码重写为:
cursor.execute('''INSERT INTO signup (id, name, email, dob, address, mobile, password) VALUES (1,%s,%s,%s,%s,%s,%s)''', (name,email,dob,address,mobile,password))
现在您可以根据需要将“\r”传递给数据库,而且您也可以安全地避免 SQL 注入。