I'm trying to make a translation of an SQL query from PHP to MySQLdb for Python.
Following is the PHP Code:
$query = "
select
`ip_address`.`address`,
`interface`.`name`,
`equipment`.`dns_hostname`,`interface`.`vrf_id`
from
`equipment` `equipment`
inner join `tm_se_equipment` `tm_se_equipment`
on `equipment`.`id` = `tm_se_equipment`.`equipment_id`
inner join `interface` `interface`
on `interface`.`equipment_id` = `equipment`.`id`
inner join `ip_address` `ip_address`
on `ip_address`.`if_id` = `interface`.`id`
where
(`ip_address`.`address` = '$ip_address')
";
I tried to translate it like this but it didn't work out, the only result I fetch is ()
:
ip_address = ipaddr.IPAddress(linknet)
linknet = "1.1.1.1"
cursor.execute("""SELECT `ip_address`.`address`, `interface`.`name`, `equipment`.`dns_hostname`, `interface`.`vrf_id` FROM `equipment` `equipment` INNER JOIN `tm_se_equipment` `tm_se_equipment` ON `equipment`.`id` = `tm_se_equipment`.`equipment_id` INNER JOIN `interface` `interface` ON `interface`.`equipment_id` = `equipment`.`id` INNER JOIN `ip_address` `ip_address` ON `ip_address`.`if_id` = `interface`.`id` WHERE `ip_address`.`address` = %s""", (ip_address,))
Try this:
cursor.execute("""SELECT `ip_address`.`address`, `interface`.`name`, `equipment`.`dns_hostname`, `interface`.`vrf_id` FROM `equipment` `equipment` INNER JOIN `tm_se_equipment` `tm_se_equipment` ON `equipment`.`id` = `tm_se_equipment`.`equipment_id` INNER JOIN `interface` `interface` ON `interface`.`equipment_id` = `equipment`.`id` INNER JOIN `ip_address` `ip_address` ON `ip_address`.`if_id` = `interface`.`id` WHERE `ip_address`.`address` = '%s'""" % ip_address)
Or if you're trying to path ip address as parameter to execute function, you need to use "?" instead of "%"