diff options
author | Pierre Schmitz <pierre@archlinux.de> | 2007-09-14 13:18:58 +0200 |
---|---|---|
committer | Pierre Schmitz <pierre@archlinux.de> | 2007-09-14 13:18:58 +0200 |
commit | 8f416baead93a48e5799e44b8bd2e2c4859f4e04 (patch) | |
tree | cd47ac55eb80a39e3225e8b4f3161b88ea16c2cf /includes/LinkBatch.php | |
parent | d7d08bd1a17618c7d77a6b9b2989e9f7293d6ed6 (diff) |
auf Version 1.11 aktualisiert; Login-Bug behoben
Diffstat (limited to 'includes/LinkBatch.php')
-rw-r--r-- | includes/LinkBatch.php | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/includes/LinkBatch.php b/includes/LinkBatch.php index 065c540a..8ab3393e 100644 --- a/includes/LinkBatch.php +++ b/includes/LinkBatch.php @@ -3,7 +3,7 @@ /** * Class representing a list of titles * The execute() method checks them all for existence and adds them to a LinkCache object - + + * * @addtogroup Cache */ class LinkBatch { @@ -156,19 +156,26 @@ class LinkBatch { } else { $sql .= ' OR '; } - $sql .= "({$prefix}_namespace=$ns AND {$prefix}_title IN ("; - - $firstTitle = true; - foreach( $dbkeys as $dbkey => $unused ) { - if ( $firstTitle ) { - $firstTitle = false; - } else { - $sql .= ','; + + if (count($dbkeys)==1) { // avoid multiple-reference syntax if simple equality can be used + + $sql .= "({$prefix}_namespace=$ns AND {$prefix}_title=". + $db->addQuotes(current(array_keys($dbkeys))). + ")"; + } else { + $sql .= "({$prefix}_namespace=$ns AND {$prefix}_title IN ("; + + $firstTitle = true; + foreach( $dbkeys as $dbkey => $unused ) { + if ( $firstTitle ) { + $firstTitle = false; + } else { + $sql .= ','; + } + $sql .= $db->addQuotes( $dbkey ); } - $sql .= $db->addQuotes( $dbkey ); + $sql .= '))'; } - - $sql .= '))'; } if ( $first && $firstTitle ) { # No titles added @@ -179,4 +186,4 @@ class LinkBatch { } } -?> + |