使用mysql.connector在python 3.4中将数据插入mysql的语法错误

使用mysql.connector在python 3.4中将数据插入mysql的语法错误,python,mysql,Python,Mysql,我从web上获取数据,并通过以下代码将其插入mysql数据库。在数据表中添加记录的SQL语法中似乎存在问题。错误消息如下所示: 有人能帮忙吗 错误消息: > File "D:\Clouds\Dropbox\programming\Python\get youbike info.py", line > 33, in <module> > cursor.execute(insert_data) File "C:\Python34\lib\site-pack

我从web上获取数据,并通过以下代码将其插入mysql数据库。在数据表中添加记录的SQL语法中似乎存在问题。错误消息如下所示:

有人能帮忙吗

错误消息:

>  File "D:\Clouds\Dropbox\programming\Python\get youbike info.py", line
> 33, in <module>
>     cursor.execute(insert_data)   File "C:\Python34\lib\site-packages\mysql\connector\cursor.py", line 559,
> in execute
>     self._handle_result(self._connection.cmd_query(stmt))   File "C:\Python34\lib\site-packages\mysql\connector\connection.py", line
> 494, in cmd_query
>     result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query))   File
> "C:\Python34\lib\site-packages\mysql\connector\connection.py", line
> 396, in _handle_result
>     raise errors.get_exception(packet) mysql.connector.errors.ProgrammingError: 1064 (42000): You have an
> error in your SQL syntax; check the manual that corresponds to your
> MariaDB server version for the right syntax to use near '%s, %s, %s,
> %s, %s, %s, %s, %s, %s)' at line 1

要帮助查找故障,请执行以下操作:

print "("INSERT INTO info "
       "sno, sna, sarea, lat, lng, ar, sareaen, snaen, aren) "
       "VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)")
并检查值是否有任何双引号;存在任何错误都肯定会导致SQL崩溃


此外,通过“从web获取数据”并像您所做的那样将其直接插入代码,您的应用程序将面临一些非常严重的SQL插入攻击,因此,除了去掉引号外,最好花一些时间清理web输入。

您没有将任何数据传递到值部分,占位符%s将变为空白,因为您没有在其中传递数据

insert_data = ("INSERT INTO info "
                   "(sno, sna, sarea, lat, lng, ar, sareaen, snaen, aren) "
                   "VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)")

    cursor.execute(insert_data,(sno, sna, sarea, lat, lng, ar, sareaen, snaen, aren))

试试这个

应该是
游标。执行(插入数据、sno、sna、sarea等)
insert_data = ("INSERT INTO info "
                   "(sno, sna, sarea, lat, lng, ar, sareaen, snaen, aren) "
                   "VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)")

    cursor.execute(insert_data,(sno, sna, sarea, lat, lng, ar, sareaen, snaen, aren))