Het feit dat MySQLPython de standaard tekenreeksopmaakmarkering ("%") gebruikt voor tijdelijke aanduidingen voor variabelen in zoekopdrachten kan de zaken verwarrend maken.
De tijdelijke aanduiding voor query's in de db-api van python zijn voor waarden gebruikt in where
clausules en insert
en update
statements, en zijn correct gesaneerd / escaped / geciteerd door de db-api om SQL-injecties enz. te voorkomen. Ze mogen niet worden gebruikt voor tabel- of veldnamen.
Dus, wat u hier wilt, is uw zoekopdracht bouwen met behulp van tekenreeksopmaak:
sql = 'SHOW TABLES FROM %s;' % (db_name[0],)
cursor.execute(sql)
Sinds db_name[0]
afkomstig is van een vertrouwde bron, er is hier geen beveiligingsprobleem.