Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
连接MySQL时出现Python错误 当我有con.close()-mysql.connector.errors.OperationalError:[Errno 9]错误的文件描述符时,我收到错误消息 删除con.close()-mysql.connector.errors.InterfaceError:2055:在“localhost:3306”处与mysql服务器的连接中断,系统错误:10054时收到错误消息_Python_Mysql - Fatal编程技术网

连接MySQL时出现Python错误 当我有con.close()-mysql.connector.errors.OperationalError:[Errno 9]错误的文件描述符时,我收到错误消息 删除con.close()-mysql.connector.errors.InterfaceError:2055:在“localhost:3306”处与mysql服务器的连接中断,系统错误:10054时收到错误消息

连接MySQL时出现Python错误 当我有con.close()-mysql.connector.errors.OperationalError:[Errno 9]错误的文件描述符时,我收到错误消息 删除con.close()-mysql.connector.errors.InterfaceError:2055:在“localhost:3306”处与mysql服务器的连接中断,系统错误:10054时收到错误消息,python,mysql,Python,Mysql,有什么建议吗?Thx 以下是我的疑问: import mysql.connector class databaseConnection: def __init__ (self,settings ): cur=settings.cursor() selectstmt=("SELECT qSQL FROM TBLTEST WHERE id = 4") cur.execute(selectstmt) res=cur.fetch

有什么建议吗?Thx
以下是我的疑问:

import mysql.connector
class databaseConnection:
    def __init__ (self,settings ): 
        cur=settings.cursor()

        selectstmt=("SELECT qSQL FROM TBLTEST WHERE id = 4")
        cur.execute(selectstmt)
        res=cur.fetchone()
        qSQL=res[0]
        cur.execute(qSQL)
        qSQLresults=cur.fetchall()
        for row in qSQLresults:
            id= row[0]
            city= row[1]
            state=row[2]
            insertstmt=("""INSERT into FACTRESTTBL (id, city, state) 
                           values (%d, '%s', '%s')""" % (id, city, state))
            cur.execute(insertstmt)
            con.commit() 
        con.close() # 

print 'done'

con=mysql.connector.connect(host="localhost", 
                            user="root", 
                            password="test", 
                            database="test")
databaseobject = databaseConnection(con)

--

当我在服务器上的Vim上运行脚本时,它可以工作。

它不应该是
设置。close()
?旁白:您应该将参数作为第二个参数传递给
。execute()
,以防止SQL注入攻击。我的做法类似于:所以我使用了con.close(),您如何“将参数作为第二个参数传递给.execute()”要防止SQL注入攻击,请执行以下命令:
cur.execute(insertstmt,(id,city,state))
。您可以将所有占位符更改为所使用模块的相应占位符。有些人使用
,有些人使用
%s
。在这两种情况下,您的连接似乎提前终止。可能有一种配置可以设置为更长的超时时间。