0

PHP から Python 用の MySQLdb に SQL クエリを変換しようとしています。

以下はPHPコードです:

$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') 
    ";

このように翻訳しようとしましたが、うまくいきませんでした。取得した唯一の結果は次の()とおりです。

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,))
4

1 に答える 1

0

これを試して:

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)

または、関数を実行するためのパラメータとしてIPアドレスをパスしようとしている場合は、「?」を使用する必要があります。それ以外の "%"

于 2012-12-18T13:32:48.210 に答える