sqlalchemy.exc.ProgrammingError: (pymysql.err.ProgrammingError) (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'fromt_user' at line 1")
报错是这样的,意思就是我的sql语法出错了
今天在弄pandas连接mysql数据库的时候,最后运行时出错了
源代码:
from sqlalchemy import create_engine
def query(table):
host = 'localhost'
user = 'root'
password = '123456'
database = 'ConstructionDB'
port = 3306
conn = create_engine('mysql+pymysql://{}:{}@{}:{}/{}'.format(user, password, host, port, database))
sql = 'select * from' + table
results = pd.read_sql(sql, conn)
return results
通过debug发现,原来sql语句在拼接的时候没有空格,导致sql最后的语法时
sql = [select * fromt_user]
沾一块去了
def query(table):
host = 'localhost'
user = 'root'
password = '123456'
database = 'ConstructionDB'
port = 3306
conn = create_engine('mysql+pymysql://{}:{}@{}:{}/{}'.format(user, password, host, port, database))
sql = 'select * from' +' ' + table
results = pd.read_sql(sql, conn)
return results
注意 sql语句 ,把代码中间 拼接一个空格 即可,问题解决