连接数据库服务器后,我想循环某些数据库。
数据库的名称位于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
如果您需要更多信息,请索取。
非常感谢您的帮助。