使用mysql.connector在python 3.4中将数据插入mysql的语法错误
我从web上获取数据,并通过以下代码将其插入mysql数据库。在数据表中添加记录的SQL语法中似乎存在问题。错误消息如下所示: 有人能帮忙吗 错误消息:使用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
> 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))