mysql.connect,用于循环数据库

时间:2017-08-14 13:02:52

标签: python mysql database

连接数据库服务器后,我想循环某些数据库。 数据库的名称位于dbList列表中。这些名称来自不同的客户文件,其中包含类似的行 name_database='database_1'name_database='database-2'。 缩短的dbList看起来像["' database_1'","' database-2'"]。 如果我for循环数据库列表(从数据库名称中删除单引号,做一些操作)一切都很好,除了数据库名称是连字符。比程序停止时出现错误

1064(42000):您的SQL语法出错;检查与您的MariaDB服务器版本对应的手册,以便在' -2'附近使用正确的语法。在第1行 这正是我打电话的地方

dbConn.database=dbName

我尝试了各种" dbConn.database = ..."方法;没有用。 它的唯一工作方式是不使用循环变量;只需编写dbConn.database =' database-2' 但这不是我的意图。

编码提取物是:

import mysql.connector

...     dbConn = connect2dbServer(loginParameterFile,fileSection)

一般的DB服务器访问认证(未选择DB) connect2dbServer获取用户名,密码,服务器IP和端口号 connect2dbServer返回数据库服务器连接器。

...

for dbName in dbList:
     dbName = removeChar ("'", dbName)
     dbConn.database=dbName           # connecting with (next) DB
     # ...


    select round (sum(size)/1024/1024/1024, 2) as 'Used HDD space (GB)' from oc_filecache where path in ('cache', 'documents', 'files')

...#和其他一些查询

import re
def removeChar (char, string):
    stripped=''
    stripped = re.sub(char, "", string) 
    return stripped

OS macOS 10.12 mysql客户端5.7 mysql-connector 2.1.5 python 3.6

如果您需要更多信息,请索取。

非常感谢您的帮助。

0 个答案:

没有答案
相关问题